Index: third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h |
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h |
index 9ea2ca1617bdcb4cac5f24e0da420b59904a1a4e..4a0545a0cebe969aad501a40f739817098fb560a 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h |
+++ b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h |
@@ -19,6 +19,7 @@ class NGConstraintSpace; |
class NGConstraintSpaceBuilder; |
class NGFragment; |
class NGFragmentBuilder; |
+class NGOutOfFlowLayoutPart; |
class NGPhysicalFragmentBase; |
// A class for general block layout (e.g. a <div> with no special style). |
@@ -47,6 +48,7 @@ class CORE_EXPORT NGBlockLayoutAlgorithm : public NGLayoutAlgorithm { |
// Creates a new constraint space for the current child. |
NGConstraintSpace* CreateConstraintSpaceForCurrentChild() const; |
void FinishCurrentChildLayout(NGFragmentBase* fragment); |
+ bool LayoutOutOfFlowChild(); |
// Computes collapsed margins for 2 adjoining blocks and updates the resultant |
// fragment's MarginStrut if needed. |
@@ -103,6 +105,7 @@ class CORE_EXPORT NGBlockLayoutAlgorithm : public NGLayoutAlgorithm { |
kStateInit, |
kStatePrepareForChildLayout, |
kStateChildLayout, |
+ kStateOutOfFlowLayout, |
kStateFinalize |
}; |
LayoutState layout_state_; |
@@ -120,6 +123,11 @@ class CORE_EXPORT NGBlockLayoutAlgorithm : public NGLayoutAlgorithm { |
Member<NGBlockNode> current_minmax_child_; |
MinAndMaxContentSizes pending_minmax_sizes_; |
+ Member<NGOutOfFlowLayoutPart> out_of_flow_layout_; |
+ HeapLinkedHashSet<WeakMember<NGBlockNode>> out_of_flow_candidates_; |
+ Vector<NGStaticPosition> out_of_flow_candidate_positions_; |
+ size_t out_of_flow_candidate_positions_index_; |
+ |
NGBoxStrut border_and_padding_; |
LayoutUnit content_size_; |
LayoutUnit max_inline_size_; |