Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(363)

Unified Diff: third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h

Issue 2655783006: Top down version of algorithm to position margins and floats in LayoutNG (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 b059980113ccfd8de09da7bdae2367d9d0ac4151..09501f305a9bcc50ea25c29ab24149ad4ba26b5d 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,7 +19,6 @@ class NGBreakToken;
class NGColumnMapper;
class NGConstraintSpace;
class NGConstraintSpaceBuilder;
-class NGBoxFragment;
class NGFragment;
class NGFragmentBuilder;
class NGPhysicalFragment;
@@ -98,40 +97,9 @@ class CORE_EXPORT NGBlockLayoutAlgorithm : public NGLayoutAlgorithm {
return content_size_;
}
- // Computes collapsed margins for 2 adjoining blocks and updates the resultant
- // fragment's MarginStrut if needed.
- // See https://www.w3.org/TR/CSS2/box.html#collapsing-margins
- //
- // @param child_margins Margins information for the current child.
- // @param fragment Current child's fragment.
- // @return NGBoxStrut with margins block start/end.
- NGBoxStrut CollapseMargins(const NGBoxStrut& child_margins,
- const NGBoxFragment& fragment);
-
- // Calculates position of the in-flow block-level fragment that needs to be
- // positioned relative to the current fragment that is being built.
- //
- // @param fragment Fragment that needs to be placed.
- // @param child_margins Margins information for the current child fragment.
- // @return Position of the fragment in the parent's constraint space.
- NGLogicalOffset PositionFragment(const NGFragment& fragment,
- const NGBoxStrut& child_margins);
-
- // Calculates position of the float fragment that needs to be
- // positioned relative to the current fragment that is being built.
- //
- // @param fragment Fragment that needs to be placed.
- // @param child_margins Margins information for the current child fragment.
- // @return Position of the fragment in the parent's constraint space.
- NGLogicalOffset PositionFloatFragment(const NGFragment& fragment,
- const NGBoxStrut& child_margins);
-
- // Updates block-{start|end} of the currently constructed fragment.
- //
- // This method is supposed to be called on every child but it only updates
- // the block-start once (on the first non-zero height child fragment) and
- // keeps updating block-end (on every non-zero height child).
- void UpdateMarginStrut(const NGDeprecatedMarginStrut& from);
+ // Calculates relative position for the fragment that knows its offset.
+ NGLogicalOffset PositionFragmentWithKnownBfcOffset(
+ const NGLogicalOffset& offset);
NGLogicalOffset GetChildSpaceOffset() const {
return NGLogicalOffset(border_and_padding_.inline_start, content_size_);
@@ -175,10 +143,9 @@ class CORE_EXPORT NGBlockLayoutAlgorithm : public NGLayoutAlgorithm {
LayoutUnit content_size_;
LayoutUnit max_inline_size_;
// MarginStrut for the previous child.
- NGDeprecatedMarginStrut prev_child_margin_strut_;
- // Whether the block-start was set for the currently built
- // fragment's margin strut.
- bool is_fragment_margin_strut_block_start_updated_ : 1;
+ NGMarginStrut curr_margin_strut_;
+ NGLogicalOffset bfc_offset_;
+ NGLogicalOffset curr_bfc_offset_;
NGBoxStrut curr_child_margins_;
};

Powered by Google App Engine
This is Rietveld 408576698