| 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 9ce63c41d0663e66ba24618426cf899c58ee19c5..6b465109af92381fd70ea9c020ecea348a25e807 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
|
| @@ -18,10 +18,12 @@ namespace blink {
|
|
|
| class NGConstraintSpace;
|
| class NGLayoutResult;
|
| +struct NGInflowChildData;
|
| +struct NGPreviousInflowPosition;
|
|
|
| // Updates the fragment's BFC offset if it's not already set.
|
| void MaybeUpdateFragmentBfcOffset(const NGConstraintSpace&,
|
| - const NGLogicalOffset&,
|
| + LayoutUnit bfc_block_offset,
|
| NGFragmentBuilder* builder);
|
|
|
| // Positions pending floats starting from {@origin_block_offset} and relative
|
| @@ -52,15 +54,19 @@ class CORE_EXPORT NGBlockLayoutAlgorithm
|
|
|
| // Creates a new constraint space for the current child.
|
| RefPtr<NGConstraintSpace> CreateConstraintSpaceForChild(
|
| - const NGLogicalOffset& child_bfc_offset,
|
| - const NGLayoutInputNode&);
|
| + const NGLayoutInputNode& child,
|
| + const NGInflowChildData& child_data);
|
|
|
| // @return Estimated BFC offset for the "to be layout" child.
|
| - NGLogicalOffset PrepareChildLayout(NGLayoutInputNode*);
|
| + NGInflowChildData PrepareChildLayout(const NGPreviousInflowPosition&,
|
| + NGLayoutInputNode*);
|
|
|
| - void FinishChildLayout(const NGConstraintSpace&,
|
| - const NGLayoutInputNode* child,
|
| - NGLayoutResult*);
|
| + NGPreviousInflowPosition FinishChildLayout(
|
| + const NGConstraintSpace&,
|
| + const NGPreviousInflowPosition& prev_data,
|
| + const NGInflowChildData& child_data,
|
| + const NGLayoutInputNode* child,
|
| + NGLayoutResult*);
|
|
|
| // Positions the fragment that establishes a new formatting context.
|
| //
|
| @@ -81,7 +87,10 @@ class CORE_EXPORT NGBlockLayoutAlgorithm
|
| // then it will be placed there and we collapse its margin.
|
| // 2) If #new-fc is too big then we need to clear its position and place it
|
| // below #float ignoring its vertical margin.
|
| - NGLogicalOffset PositionNewFc(const NGBoxFragment&,
|
| + NGLogicalOffset PositionNewFc(const NGLayoutInputNode& child,
|
| + const NGPreviousInflowPosition&,
|
| + const NGBoxFragment&,
|
| + const NGInflowChildData& child_data,
|
| const NGConstraintSpace& child_space);
|
|
|
| // Positions the fragment that knows its BFC offset.
|
| @@ -95,12 +104,16 @@ class CORE_EXPORT NGBlockLayoutAlgorithm
|
| // <div style="padding: 1px">
|
| // <div id="empty-div" style="margins: 1px"></div>
|
| NGLogicalOffset PositionWithParentBfc(const NGConstraintSpace&,
|
| + const NGInflowChildData& child_data,
|
| const NGBoxFragment&);
|
|
|
| - NGLogicalOffset PositionLegacy(const NGConstraintSpace& child_space);
|
| + NGLogicalOffset PositionLegacy(const NGConstraintSpace& child_space,
|
| + const NGInflowChildData& child_data);
|
|
|
| - void HandleOutOfFlowPositioned(NGBlockNode*);
|
| - void HandleFloating(NGBlockNode*, NGBlockBreakToken*);
|
| + void HandleOutOfFlowPositioned(const NGPreviousInflowPosition&, NGBlockNode*);
|
| + void HandleFloating(const NGPreviousInflowPosition&,
|
| + NGBlockNode*,
|
| + NGBlockBreakToken*);
|
|
|
| // Final adjustments before fragment creation. We need to prevent the
|
| // fragment from crossing fragmentainer boundaries, and rather create a break
|
| @@ -112,6 +125,7 @@ class CORE_EXPORT NGBlockLayoutAlgorithm
|
| // or {@code known_fragment_offset} if the fragment knows it's offset
|
| // @return Fragment's offset relative to the fragment's parent.
|
| NGLogicalOffset CalculateLogicalOffset(
|
| + const NGBoxStrut& child_margins,
|
| const WTF::Optional<NGLogicalOffset>& known_fragment_offset);
|
|
|
| NGLogicalSize child_available_size_;
|
| @@ -120,10 +134,6 @@ class CORE_EXPORT NGBlockLayoutAlgorithm
|
| NGBoxStrut border_and_padding_;
|
| LayoutUnit content_size_;
|
| LayoutUnit max_inline_size_;
|
| - // MarginStrut for the previous child.
|
| - NGMarginStrut curr_margin_strut_;
|
| - NGLogicalOffset curr_bfc_offset_;
|
| - NGBoxStrut curr_child_margins_;
|
| };
|
|
|
| } // namespace blink
|
|
|