Bug 1672891 [wpt PR 26247] - Propagate previous fragment's break token for OOF fragmentation layout, a=testonly

Automatic update from web-platform-tests
Propagate previous fragment's break token for OOF fragmentation layout

When adding out-of-flow results to a fragmentainer, we currently are not
setting up the break token sequence number on the NGBoxFragmentBuilder
for the NGSimplifiedOOFLayoutAlgorithm. This results in painting
different fragments with the same fragmentainer identifier in
NGBoxFragmentPainter::PaintBlockChildren, which causes a DCHECK in
display item caching code.

Instead, use the previous fragment's BreakToken when creating the
NGSimplifiedOOFLayoutAlgorithm. This gets the sequence numbers correct,
whether we replace or create new fragments (for the former
we could just use the existing break token/sequence number).

This adds a WPT test for the unit test that exposed this issue:
NGOutOfFlowLayoutPartTest::PositionedFragmentationWithOverflow

Bug: 1134763

Change-Id: I48a230f8153b8ea63c3a376629c645656423fc2b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2490209
Commit-Queue: Daniel Libby <dlibby@microsoft.com>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Benjamin Beaudry <benjamin.beaudry@microsoft.com>
Reviewed-by: Alison Maher <almaher@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#820944}

--

wpt-commits: 779dc12974e409ffe4b998bddf740cfb883f2e50
wpt-pr: 26247
This commit is contained in:
Daniel Libby 2020-10-27 04:58:01 +00:00 коммит произвёл moz-wptsync-bot
Родитель eeeeba9472
Коммит cba354cf94
1 изменённых файлов: 33 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,33 @@
<!DOCTYPE html>
<link rel="help" href="href=https://www.w3.org/TR/css-break-3/#break-decoration">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<!-- Tests fragmentation when a positioned node's child overflows. -->
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<style>
#multicol {
column-count: 2;
column-fill: auto;
column-gap: 0px;
height: 100px;
width: 50px;
}
.rel {
position: relative;
width: 30px;
}
.abs {
position: absolute;
top: 0px;
width: 5px;
height: 10px;
background: green;
}
</style>
<div id="multicol">
<div class="rel">
<div class="abs">
<div style="background: green; width: 25px; height: 400px;"></div>
</div>
</div>
<div style="background-color: red; width: 20px; height: 140px;"></div>
</div>