Index: Source/core/rendering/RenderTextFragment.h |
diff --git a/Source/core/rendering/RenderTextFragment.h b/Source/core/rendering/RenderTextFragment.h |
index 55084b1d72cfbf9b5d3ce501cc10b9e360d12bca..3b8bf00b26e56083e686006b0b30726e7278d173 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 |
@@ -46,11 +48,12 @@ 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; |
- |
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 +62,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()); |