Index: third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.h |
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.h b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.h |
index 366aeda434147663aab92faf7af7e0eb1ab57c17..310ad9f3b8c3d96aa20a2d5ae269af781bda5cc7 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.h |
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.h |
@@ -6,8 +6,9 @@ |
#define NGInlineNode_h |
#include "core/CoreExport.h" |
-#include "core/layout/LayoutBlockFlow.h" |
#include "core/layout/ng/inline/ng_inline_item.h" |
+#include "core/layout/ng/inline/ng_inline_node_data.h" |
+#include "core/layout/ng/layout_ng_block_flow.h" |
#include "core/layout/ng/ng_layout_input_node.h" |
#include "platform/heap/Handle.h" |
#include "platform/wtf/text/WTFString.h" |
@@ -16,6 +17,7 @@ namespace blink { |
class ComputedStyle; |
class LayoutBlockFlow; |
+class LayoutNGBlockFlow; |
class LayoutObject; |
struct MinMaxContentSize; |
class NGConstraintSpace; |
@@ -28,7 +30,7 @@ class NGLayoutResult; |
// inline nodes and their descendants. |
class CORE_EXPORT NGInlineNode : public NGLayoutInputNode { |
public: |
- NGInlineNode(LayoutObject* start_inline, LayoutBlockFlow*); |
+ NGInlineNode(LayoutObject* start_inline, LayoutNGBlockFlow*); |
~NGInlineNode() override; |
LayoutBlockFlow* GetLayoutBlockFlow() const { return block_; } |
@@ -49,18 +51,18 @@ class CORE_EXPORT NGInlineNode : public NGLayoutInputNode { |
// Instruct to re-compute |PrepareLayout| on the next layout. |
void InvalidatePrepareLayout(); |
- const String& Text() const { return text_content_; } |
+ const String& Text() const { return Data().text_content_; } |
StringView Text(unsigned start_offset, unsigned end_offset) const { |
- return StringView(text_content_, start_offset, end_offset - start_offset); |
+ return StringView(Data().text_content_, start_offset, |
+ end_offset - start_offset); |
} |
- Vector<NGInlineItem>& Items() { return items_; } |
- const Vector<NGInlineItem>& Items() const { return items_; } |
+ const Vector<NGInlineItem>& Items() const { return Data().items_; } |
NGInlineItemRange Items(unsigned start_index, unsigned end_index); |
void GetLayoutTextOffsets(Vector<unsigned, 32>*); |
- bool IsBidiEnabled() const { return is_bidi_enabled_; } |
+ bool IsBidiEnabled() const { return Data().is_bidi_enabled_; } |
void AssertOffset(unsigned index, unsigned offset) const; |
void AssertEndOffset(unsigned index, unsigned offset) const; |
@@ -73,7 +75,7 @@ class CORE_EXPORT NGInlineNode : public NGLayoutInputNode { |
// Prepare inline and text content for layout. Must be called before |
// calling the Layout method. |
void PrepareLayout(); |
- bool IsPrepareLayoutFinished() const { return !text_content_.IsNull(); } |
+ bool IsPrepareLayoutFinished() const { return !Text().IsNull(); } |
void CollectInlines(LayoutObject* start, LayoutBlockFlow*); |
LayoutObject* CollectInlines(LayoutObject* start, |
@@ -82,27 +84,21 @@ class CORE_EXPORT NGInlineNode : public NGLayoutInputNode { |
void SegmentText(); |
void ShapeText(); |
+ NGInlineNodeData& MutableData() { return block_->GetNGInlineNodeData(); } |
+ const NGInlineNodeData& Data() const { return block_->GetNGInlineNodeData(); } |
+ |
LayoutObject* start_inline_; |
- LayoutBlockFlow* block_; |
+ LayoutNGBlockFlow* block_; |
Member<NGLayoutInputNode> next_sibling_; |
- |
- // Text content for all inline items represented by a single NGInlineNode |
- // instance. Encoded either as UTF-16 or latin-1 depending on content. |
- String text_content_; |
- Vector<NGInlineItem> items_; |
- |
- // TODO(kojii): This should move to somewhere else when we move PrepareLayout |
- // to the correct place. |
- bool is_bidi_enabled_ = false; |
}; |
inline void NGInlineNode::AssertOffset(unsigned index, unsigned offset) const { |
- items_[index].AssertOffset(offset); |
+ Data().items_[index].AssertOffset(offset); |
} |
inline void NGInlineNode::AssertEndOffset(unsigned index, |
unsigned offset) const { |
- items_[index].AssertEndOffset(offset); |
+ Data().items_[index].AssertEndOffset(offset); |
} |
DEFINE_TYPE_CASTS(NGInlineNode, |