| Index: Source/core/rendering/RenderTextFragment.h
|
| diff --git a/Source/core/rendering/RenderTextFragment.h b/Source/core/rendering/RenderTextFragment.h
|
| index 505dbabb351a312c9535bdd674d98ae81b6ab662..fa1d3adfbb56101c0f2d9423f960982b17150bca 100644
|
| --- a/Source/core/rendering/RenderTextFragment.h
|
| +++ b/Source/core/rendering/RenderTextFragment.h
|
| @@ -27,6 +27,8 @@
|
|
|
| namespace blink {
|
|
|
| +class FirstLetterPseudoElement;
|
| +
|
| // Used to represent a text substring of an element, e.g., for text runs that are split because of
|
| // first letter and that must therefore have different styles (and positions in the render tree).
|
| // We cache offsets so that text transformations can be applied in such a way that we can recover
|
| @@ -37,6 +39,7 @@ public:
|
| RenderTextFragment(Node*, StringImpl*);
|
| virtual ~RenderTextFragment();
|
| virtual void trace(Visitor*) override;
|
| + virtual void destroy() override;
|
|
|
| virtual bool isTextFragment() const override { return true; }
|
|
|
| @@ -46,11 +49,14 @@ public:
|
| unsigned end() const { return m_end; }
|
| virtual unsigned textStartOffset() const override { return start(); }
|
|
|
| - RenderBoxModelObject* firstLetter() const { return m_firstLetter; }
|
| - void setFirstLetter(RenderBoxModelObject* firstLetter) { m_firstLetter = firstLetter; }
|
| - RenderText* firstRenderTextInFirstLetter() const;
|
| -
|
| void setContentString(StringImpl*);
|
| + StringImpl* contentString() const { return m_contentString.get(); }
|
| + // The complete text is all of the text in the associated DOM text node.
|
| + PassRefPtr<StringImpl> completeText() const;
|
| + // The fragment text is the text which will be used by this RenderTextFragment. For
|
| + // things like first-letter this may differ from the completeText as we maybe using
|
| + // only a portion of the text nodes content.
|
| +
|
| virtual PassRefPtr<StringImpl> originalText() const override;
|
|
|
| virtual void setText(PassRefPtr<StringImpl>, bool force = false) override;
|
| @@ -59,20 +65,23 @@ public:
|
|
|
| virtual const char* renderName() const override final { return "RenderTextFragment"; }
|
|
|
| -protected:
|
| - virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
|
| + void setFirstLetterPseudoElement(FirstLetterPseudoElement* element) { m_firstLetterPseudoElement = element; }
|
| + FirstLetterPseudoElement* firstLetterPseudoElement() const { return m_firstLetterPseudoElement; }
|
|
|
| -private:
|
| - virtual void willBeDestroyed() override;
|
| + void setIsRemainingTextRenderer() { m_isRemainingTextRenderer = true; }
|
| + bool isRemainingTextRenderer() const { return m_isRemainingTextRenderer; }
|
|
|
| - virtual UChar previousCharacter() const override;
|
| +private:
|
| RenderBlock* blockForAccompanyingFirstLetter() const;
|
| - virtual void updateHitTestResult(HitTestResult&, const LayoutPoint&) override;
|
| + virtual UChar previousCharacter() const override;
|
| +
|
| + Text* associatedTextNode() const;
|
|
|
| unsigned m_start;
|
| unsigned m_end;
|
| + bool m_isRemainingTextRenderer;
|
| RefPtr<StringImpl> m_contentString;
|
| - RawPtrWillBeMember<RenderBoxModelObject> m_firstLetter;
|
| + RawPtrWillBeMember<FirstLetterPseudoElement> m_firstLetterPseudoElement;
|
| };
|
|
|
| DEFINE_TYPE_CASTS(RenderTextFragment, RenderObject, object, toRenderText(object)->isTextFragment(), toRenderText(object).isTextFragment());
|
|
|