| Index: third_party/WebKit/Source/core/editing/iterators/TextIteratorTextState.h
|
| diff --git a/third_party/WebKit/Source/core/editing/iterators/TextIteratorTextState.h b/third_party/WebKit/Source/core/editing/iterators/TextIteratorTextState.h
|
| index f81bb8fed902e50b89d21c3fbbd61b9589dc192d..64dbf2f519a1c2bd2c7102129d8b3c0fcf3d49b7 100644
|
| --- a/third_party/WebKit/Source/core/editing/iterators/TextIteratorTextState.h
|
| +++ b/third_party/WebKit/Source/core/editing/iterators/TextIteratorTextState.h
|
| @@ -44,12 +44,16 @@ class CORE_EXPORT TextIteratorTextState
|
| explicit TextIteratorTextState(const TextIteratorBehavior&);
|
| ~TextIteratorTextState() {}
|
|
|
| + // Return properties of the current text.
|
| int length() const { return text_length_; }
|
| UChar CharacterAt(unsigned index) const;
|
| String Substring(unsigned position, unsigned length) const;
|
| void AppendTextToStringBuilder(StringBuilder&,
|
| unsigned position = 0,
|
| unsigned max_length = UINT_MAX) const;
|
| + void AppendTextTo(ForwardsTextBuffer* output,
|
| + unsigned position,
|
| + unsigned length_to_append) const;
|
|
|
| void SpliceBuffer(UChar,
|
| Node* text_node,
|
| @@ -62,35 +66,36 @@ class CORE_EXPORT TextIteratorTextState
|
| int text_end_offset);
|
| void EmitAltText(Node*);
|
| void UpdateForReplacedElement(Node* base_node);
|
| +
|
| + // Return position of the current text.
|
| void FlushPositionOffsets() const;
|
| int PositionStartOffset() const { return position_start_offset_; }
|
| int PositionEndOffset() const { return position_end_offset_; }
|
| Node* PositionNode() const { return position_node_; }
|
| +
|
| bool HasEmitted() const { return has_emitted_; }
|
| UChar LastCharacter() const { return last_character_; }
|
| - int TextStartOffset() const { return text_start_offset_; }
|
| void ResetRunInformation() {
|
| position_node_ = nullptr;
|
| text_length_ = 0;
|
| }
|
|
|
| - void AppendTextTo(ForwardsTextBuffer* output,
|
| - unsigned position,
|
| - unsigned length_to_append) const;
|
| -
|
| DECLARE_TRACE();
|
|
|
| private:
|
| int text_length_ = 0;
|
| - String text_;
|
|
|
| // Used for whitespace characters that aren't in the DOM, so we can point at
|
| // them.
|
| - // If non-zero, overrides m_text.
|
| + // If non-zero, overrides |text_|.
|
| UChar single_character_buffer_ = 0;
|
|
|
| - // The current text and its position, in the form to be returned from the
|
| - // iterator.
|
| + // The current text when |single_character_buffer_| is zero, in which case it
|
| + // is |text_.Substring(text_start_offset_, text_length_)|.
|
| + String text_;
|
| + int text_start_offset_ = 0;
|
| +
|
| + // Position of the current text, in the form to be returned from the iterator.
|
| Member<Node> position_node_;
|
| mutable Member<Node> position_offset_base_node_;
|
| mutable int position_start_offset_ = 0;
|
| @@ -103,10 +108,6 @@ class CORE_EXPORT TextIteratorTextState
|
|
|
| const TextIteratorBehavior behavior_;
|
|
|
| - // Stores the length of :first-letter when we are at the remaining text.
|
| - // Equals to 0 in all other cases.
|
| - int text_start_offset_ = 0;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(TextIteratorTextState);
|
| };
|
|
|
|
|