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

[LayoutNG] Write back float position to legacy when child of multicol.

We need to walk fragment item children, in case there are floats in
there.

This will make things like offsetLeft and offsetTop work for such
floats, fixing a few web tests.

Bug: 829028
Change-Id: I57f9901afe19b375d92b785a09358904d66b028e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2428866Reviewed-by: default avatarIan Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: default avatarKoji Ishii <kojii@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#810378}
parent abe6f390
......@@ -1198,6 +1198,14 @@ void NGBlockNode::PlaceChildrenInFlowThread(
// relatively to the block-start of the flow thread.
const auto* column = To<NGPhysicalBoxFragment>(child.get());
PlaceChildrenInLayoutBox(*column, previous_break_token);
// If the multicol container has inline children, there may still be floats
// there, but they aren't stored as child fragments of |column| in that case
// (but rather inside fragment items). Make sure that they get positioned,
// too.
if (const NGFragmentItems* items = column->Items())
CopyFragmentItemsToLayoutBox(*column, *items);
previous_break_token = To<NGBlockBreakToken>(column->BreakToken());
}
}
......
......@@ -1104,7 +1104,6 @@ crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/float-margin-at-row-
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/float-margin-at-row-boundary-fixed-multicol-height.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/float-moved-by-child-line-and-unbreakable.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/float-paginate-empty-lines.html [ Failure ]
crbug.com/1061423 virtual/layout_ng_block_frag/fast/multicol/float-truncation.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/float-with-margin-moved-by-child-block-and-unbreakable.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/float-with-margin-moved-by-child-block.html [ Failure Timeout ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/float-with-margin-moved-by-child-line-and-unbreakable.html [ Failure ]
......@@ -1177,7 +1176,6 @@ crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/caret-ra
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/client-rects-crossing-boundaries-nested.html [ Failure ]
crbug.com/1058792 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change.html [ Failure ]
crbug.com/1061423 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/float-truncation.html [ Failure ]
crbug.com/1061423 virtual/layout_ng_block_frag/fast/multicol/vertical-lr/float-truncation.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/nested-columns.html [ Crash Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/offset-top-and-left-at-boundaries-nested.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/offset-top-and-left-nested.html [ Failure ]
......@@ -1185,12 +1183,10 @@ crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/widows-and-orphans.h
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/widows.html [ Failure ]
crbug.com/1079031 virtual/layout_ng_block_frag/fragmentation/abspos-after-forced-break.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fragmentation/auto-scrollbar-shrink-to-fit.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fragmentation/change-fragmentainer-height-inline-float.html [ Failure ]
crbug.com/1079031 virtual/layout_ng_block_frag/fragmentation/content-preceding-first-fragmentainer.html [ Crash Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fragmentation/float-after-forced-break.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fragmentation/overflow-crossing-boundary.html [ Failure ]
crbug.com/1079031 virtual/layout_ng_block_frag/fragmentation/relayout-abspos.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fragmentation/remove-unbreakable-block-in-line-float.html [ Failure ]
### With LayoutNGFragmentTraversal (and LayoutNGFragmentItem) enabled:
......
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