#include "third_party/blink/renderer/core/editing/iterators/text_iterator_text_node_handler.h"
#include <algorithm>
#include "third_party/blink/renderer/core/dom/node_computed_style.h"
#include "third_party/blink/renderer/core/editing/ephemeral_range.h"
#include "third_party/blink/renderer/core/editing/iterators/text_iterator_text_state.h"
#include "third_party/blink/renderer/core/layout/inline/offset_mapping.h"
#include "third_party/blink/renderer/core/layout/layout_text.h"
#include "third_party/blink/renderer/core/layout/layout_text_fragment.h"
namespace blink {
namespace {
bool ShouldSkipInvisibleTextAt(const Text& text,
unsigned offset,
bool ignores_visibility) { … }
String TextIgnoringCSSTextTransforms(const LayoutText& layout_text,
const OffsetMappingUnit& unit) { … }
struct StringAndOffsetRange { … };
StringAndOffsetRange ComputeTextAndOffsetsForEmission(
const OffsetMapping& mapping,
const OffsetMappingUnit& unit,
const TextIteratorBehavior& behavior) { … }
}
TextIteratorTextNodeHandler::TextIteratorTextNodeHandler(
const TextIteratorBehavior& behavior,
TextIteratorTextState* text_state)
: … { … }
bool TextIteratorTextNodeHandler::HandleRemainingTextRuns() { … }
void TextIteratorTextNodeHandler::HandleTextNodeWithLayoutNG() { … }
void TextIteratorTextNodeHandler::HandleTextNodeInRange(const Text* node,
unsigned start_offset,
unsigned end_offset) { … }
void TextIteratorTextNodeHandler::HandleTextNodeStartFrom(
const Text* node,
unsigned start_offset) { … }
void TextIteratorTextNodeHandler::HandleTextNodeEndAt(const Text* node,
unsigned end_offset) { … }
void TextIteratorTextNodeHandler::HandleTextNodeWhole(const Text* node) { … }
}