Index: third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h |
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h b/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h |
index 5bffa4f0f5b99bb6dcf791bd159c3ce0821a4753..1e04915a210a8a9d09d599425cc17b6f3b772e2c 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h |
+++ b/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h |
@@ -19,7 +19,7 @@ class NGPhysicalTextFragment; |
class CORE_EXPORT NGFragmentBuilder final { |
public: |
- NGFragmentBuilder(NGPhysicalFragment::NGFragmentType, LayoutObject*); |
+ NGFragmentBuilder(NGPhysicalFragment::NGFragmentType, NGLayoutInputNode*); |
using WeakBoxList = PersistentHeapLinkedHashSet<WeakMember<NGBlockNode>>; |
@@ -35,6 +35,7 @@ class CORE_EXPORT NGFragmentBuilder final { |
NGFragmentBuilder& AddChild(RefPtr<NGPhysicalFragment>, |
const NGLogicalOffset&); |
+ |
NGFragmentBuilder& AddFloatingObject(NGFloatingObject*, |
const NGLogicalOffset&); |
@@ -75,11 +76,11 @@ class CORE_EXPORT NGFragmentBuilder final { |
NGFragmentBuilder& AddOutOfFlowDescendant(NGBlockNode*, |
const NGStaticPosition&); |
- void SetBreakToken(NGBreakToken* token) { |
- DCHECK(!break_token_); |
- break_token_ = token; |
+ NGFragmentBuilder& SetUsedBlockSize(LayoutUnit used_block_size) { |
+ used_block_size_ = used_block_size; |
+ did_break_ = true; |
+ return *this; |
} |
- bool HasBreakToken() const { return break_token_; } |
NGFragmentBuilder& SetEndMarginStrut(const NGMarginStrut& from) { |
end_margin_strut_ = from; |
@@ -110,6 +111,8 @@ class CORE_EXPORT NGFragmentBuilder final { |
return bfc_offset_; |
} |
+ bool DidBreak() const { return did_break_; } |
+ |
private: |
// Out-of-flow descendant placement information. |
// The generated fragment must compute NGStaticPosition for all |
@@ -133,7 +136,7 @@ class CORE_EXPORT NGFragmentBuilder final { |
NGWritingMode writing_mode_; |
TextDirection direction_; |
- LayoutObject* layout_object_; |
+ Persistent<NGLayoutInputNode> node_; |
NGLogicalSize size_; |
NGLogicalSize overflow_; |
@@ -141,6 +144,11 @@ class CORE_EXPORT NGFragmentBuilder final { |
Vector<RefPtr<NGPhysicalFragment>> children_; |
Vector<NGLogicalOffset> offsets_; |
+ bool did_break_; |
+ LayoutUnit used_block_size_; |
+ |
+ Persistent<HeapVector<Member<NGBreakToken>>> child_break_tokens_; |
+ |
WeakBoxList out_of_flow_descendant_candidates_; |
Vector<OutOfFlowPlacement> out_of_flow_candidate_placements_; |
@@ -154,8 +162,6 @@ class CORE_EXPORT NGFragmentBuilder final { |
Vector<NGLogicalOffset> floating_object_offsets_; |
Vector<Persistent<NGFloatingObject>> positioned_floats_; |
- Persistent<NGBreakToken> break_token_; |
- |
WTF::Optional<NGLogicalOffset> bfc_offset_; |
NGMarginStrut end_margin_strut_; |
}; |