Commit 674e7ef4 authored by Morten Stenshorne's avatar Morten Stenshorne Committed by Commit Bot

Support forced break before an out-of-flow positioned box.

CL:2421371 does something similar for floats.

Bug: 1079031, 829028
Change-Id: Ifee794cb4fb6751a511f075b32fbe0b9c50d18c0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2554568Reviewed-by: default avatarIan Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#830504}
parent 5a95d8b5
......@@ -1050,6 +1050,20 @@ bool NGBlockLayoutAlgorithm::TryReuseFragmentsFromCache(
void NGBlockLayoutAlgorithm::HandleOutOfFlowPositioned(
const NGPreviousInflowPosition& previous_inflow_position,
NGBlockNode child) {
if (ConstraintSpace().HasBlockFragmentation()) {
// Forced breaks cannot be specified directly on out-of-flow positioned
// elements, but if the preceding block has a forced break after, we need to
// break before it. Note that we really only need to do this if block-start
// offset is auto (but it's harmless to do it also when it's non-auto).
EBreakBetween break_between =
container_builder_.JoinedBreakBetweenValue(EBreakBetween::kAuto);
if (IsForcedBreakValue(ConstraintSpace(), break_between)) {
container_builder_.AddBreakBeforeChild(child, kBreakAppealPerfect,
/* is_forced_break*/ true);
return;
}
}
DCHECK(child.IsOutOfFlowPositioned());
LogicalOffset static_offset = {BorderScrollbarPadding().inline_start,
previous_inflow_position.logical_block_offset};
......
......@@ -1070,7 +1070,6 @@ crbug.com/1130451 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/mul
crbug.com/1130451 virtual/layout_ng_block_frag/external/wpt/css/css-multicol/multicol-span-all-list-item-002.html [ Failure ]
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/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-new-width-rebalance.html [ Crash Failure ]
crbug.com/1066616 virtual/layout_ng_block_frag/fast/multicol/border-radius-clipped-layer-second-column.html [ Failure ]
crbug.com/829028 virtual/layout_ng_block_frag/fast/multicol/client-rect-nested.html [ Failure ]
......@@ -1136,7 +1135,6 @@ crbug.com/829028 [ Mac ] virtual/layout_ng_block_frag/fast/multicol/vertical-lr/
crbug.com/1058792 virtual/layout_ng_block_frag/fast/multicol/vertical-rl/composited-relpos-overlapping-will-change.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/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/1079031 virtual/layout_ng_block_frag/fragmentation/content-preceding-first-fragmentainer.html [ Crash Failure ]
crbug.com/1079031 virtual/layout_ng_block_frag/fragmentation/relayout-abspos.html [ 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