Commit 11784462 authored by Morten Stenshorne's avatar Morten Stenshorne Committed by Commit Bot

[LayoutNG] Less special-code for multicol block-size calculation.

Do the same as in NGBlockLayoutAlgorithm instead. The tests that now
pass suffered from intrinsic block-size being used blindly if computed
block-size was auto - which is wrong for size containment.

Had to update two unit tests, which had the wrong expectations, that
even contradicted the comment in the tests ("Min-height has no effect on
the columns, only on the multicol container."). The multicol containers
in the tests are now correctly affected by min-height.

Bug: 829028
Change-Id: I643c42fe20101738dead65b0950fbee1b7243915
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2404457Reviewed-by: default avatarIan Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#806361}
parent 8ba895f7
...@@ -281,18 +281,19 @@ scoped_refptr<const NGLayoutResult> NGColumnLayoutAlgorithm::Layout() { ...@@ -281,18 +281,19 @@ scoped_refptr<const NGLayoutResult> NGColumnLayoutAlgorithm::Layout() {
// TODO(mstensho): Propagate baselines. // TODO(mstensho): Propagate baselines.
LayoutUnit block_size; // Save the unconstrained intrinsic size on the builder before clamping it.
if (border_box_size.block_size == kIndefiniteSize) { container_builder_.SetOverflowBlockSize(intrinsic_block_size_);
// Get the block size from the contents if it's auto.
block_size = intrinsic_block_size_; intrinsic_block_size_ =
} else { ClampIntrinsicBlockSize(ConstraintSpace(), Node(),
// TODO(mstensho): end border and padding may overflow the parent BorderScrollbarPadding(), intrinsic_block_size_);
// fragmentainer, and we should avoid that.
block_size = border_box_size.block_size - previously_consumed_block_size; LayoutUnit block_size = ComputeBlockSizeForFragment(
} ConstraintSpace(), Style(), BorderPadding(),
previously_consumed_block_size + intrinsic_block_size_,
border_box_size.inline_size);
container_builder_.SetFragmentsTotalBlockSize(previously_consumed_block_size + container_builder_.SetFragmentsTotalBlockSize(block_size);
block_size);
container_builder_.SetIntrinsicBlockSize(intrinsic_block_size_); container_builder_.SetIntrinsicBlockSize(intrinsic_block_size_);
container_builder_.SetBlockOffsetForAdditionalColumns( container_builder_.SetBlockOffsetForAdditionalColumns(
CurrentContentBlockOffset()); CurrentContentBlockOffset());
......
...@@ -2893,8 +2893,8 @@ TEST_F(NGColumnLayoutAlgorithmTest, ColumnBalancingMinHeight) { ...@@ -2893,8 +2893,8 @@ TEST_F(NGColumnLayoutAlgorithmTest, ColumnBalancingMinHeight) {
String dump = DumpFragmentTree(GetElementById("container")); String dump = DumpFragmentTree(GetElementById("container"));
String expectation = R"DUMP(.:: LayoutNG Physical Fragment Tree ::. String expectation = R"DUMP(.:: LayoutNG Physical Fragment Tree ::.
offset:unplaced size:1000x60 offset:unplaced size:1000x80
offset:0,0 size:330x60 offset:0,0 size:330x80
offset:5,5 size:100x50 offset:5,5 size:100x50
offset:0,0 size:30x50 offset:0,0 size:30x50
offset:115,5 size:100x50 offset:115,5 size:100x50
...@@ -2961,8 +2961,8 @@ TEST_F(NGColumnLayoutAlgorithmTest, ...@@ -2961,8 +2961,8 @@ TEST_F(NGColumnLayoutAlgorithmTest,
String dump = DumpFragmentTree(GetElementById("container")); String dump = DumpFragmentTree(GetElementById("container"));
String expectation = R"DUMP(.:: LayoutNG Physical Fragment Tree ::. String expectation = R"DUMP(.:: LayoutNG Physical Fragment Tree ::.
offset:unplaced size:1000x60 offset:unplaced size:1000x80
offset:0,0 size:330x60 offset:0,0 size:330x80
offset:5,5 size:100x50 offset:5,5 size:100x50
offset:0,0 size:30x50 offset:0,0 size:30x50
offset:115,5 size:100x50 offset:115,5 size:100x50
......
...@@ -1014,7 +1014,6 @@ crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-break/fieldse ...@@ -1014,7 +1014,6 @@ crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-break/fieldse
crbug.com/1066380 virtual/layout_ng_block_frag/external/wpt/css/css-break/widows-orphans-002.html [ Failure ] crbug.com/1066380 virtual/layout_ng_block_frag/external/wpt/css/css-break/widows-orphans-002.html [ Failure ]
crbug.com/1066380 virtual/layout_ng_block_frag/external/wpt/css/css-break/widows-orphans-004.html [ Failure ] crbug.com/1066380 virtual/layout_ng_block_frag/external/wpt/css/css-break/widows-orphans-004.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-break/widows-orphans-005.html [ Failure ] crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-break/widows-orphans-005.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-contain/contain-size-multicol-001.html [ Failure ]
crbug.com/1079031 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/change-out-of-flow-type-and-remove-inner-multicol-crash.html [ Crash Failure ] crbug.com/1079031 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/change-out-of-flow-type-and-remove-inner-multicol-crash.html [ Crash Failure ]
crbug.com/1058792 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/composited-under-clip-under-multicol.html [ Failure Crash ] crbug.com/1058792 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/composited-under-clip-under-multicol.html [ Failure Crash ]
crbug.com/996655 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/going-out-of-flow-after-spanner.html [ Crash Failure Pass ] crbug.com/996655 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/going-out-of-flow-after-spanner.html [ Crash Failure Pass ]
...@@ -1051,8 +1050,6 @@ crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/mult ...@@ -1051,8 +1050,6 @@ crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/mult
crbug.com/1079031 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/multicol-width-003.xht [ Crash Failure Timeout ] crbug.com/1079031 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/multicol-width-003.xht [ Crash Failure Timeout ]
crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/multicol-width-004.html [ Failure ] crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/multicol-width-004.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/multicol-width-small-001.xht [ Failure ] crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/multicol-width-small-001.xht [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-multicol-002.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-multicol-003.html [ Failure ]
crbug.com/1079031 virtual/layout_ng_block_frag/fast/multicol/abspos-after-break-after.html [ Failure ] crbug.com/1079031 virtual/layout_ng_block_frag/fast/multicol/abspos-after-break-after.html [ Failure ]
crbug.com/1066616 virtual/layout_ng_block_frag/fast/multicol/abspos-in-overflow-hidden-in-2nd-column.html [ Failure ] crbug.com/1066616 virtual/layout_ng_block_frag/fast/multicol/abspos-in-overflow-hidden-in-2nd-column.html [ Failure ]
crbug.com/1079031 virtual/layout_ng_block_frag/fast/multicol/abspos-new-width-rebalance.html [ Crash Failure ] crbug.com/1079031 virtual/layout_ng_block_frag/fast/multicol/abspos-new-width-rebalance.html [ Crash Failure ]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment