Closed Bug 1698650 Opened 3 years ago Closed 3 years ago

[wpt-sync] Sync PR 28047 - [LayoutNG] Nested abspos/fixedpos in multicol

Categories

(Core :: Layout, task, P4)

task

Tracking

()

RESOLVED FIXED
88 Branch
Tracking Status
firefox88 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

(Blocks 1 open bug, )

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 28047 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/28047
Details from upstream follow.

b'Alison Maher <almaher@microsoft.com>' wrote:

[LayoutNG] Nested abspos/fixedpos in multicol

Nested abspos elements in a multicol whose outer abspos started in a
new column was broken. The reason being that the inner abspos was added
as a descendant twice. Once when PropagateOOFPositionedInfo() was called
during OOF layout, and a second time when the new column was added
as a child to the multicol builder via AddChild().

To fix this, add a bool to AddChild() and AddResult() to determine
whether or not we should propagate up OOF descendants. This prevents us
from adding such inner abspos elements as descendants twice, as well as
avoiding repeated OOF descendants when building up the multicol
builder in a nested fragmentation context.

As a part of this change, I also moved the propagation of
non-fragmentainer OOF descendants into PropagateOOFPositionedInfo()
since we can skip such work in the above cases, as well. Previous to
this change, nested fixedpos elements inside a multicol weren't getting
laid out. This fixes the problem for simple multicol scenarios. However,
this does not fix the problem for nested fragmentation contexts or for
cases where the containing block of the fixedpos is somewhere inside the
multicol.

Thus, nested fixedpos handling will likely need to be handled in a
different way. However, I've added a simple wpt test for a nested
fixedpos to illustrate what behavior is currently working.

Bug: 1079031
Change-Id: I6fd5af2249a374676158f491717f8cc03b447e9b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2754727
Commit-Queue: Alison Maher \<almaher@microsoft.com>
Reviewed-by: Morten Stenshorne \<mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#862929}

Component: web-platform-tests → Layout
Product: Testing → Core

CI Results

Ran 15 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 2 tests

Status Summary

Firefox

PASS: 1
FAIL: 1

Chrome

PASS: 2

Safari

PASS: 2

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

Firefox-only Failures

/css/css-break/out-of-flow-in-multicolumn-025.html: FAIL

New Tests That Don't Pass

/css/css-break/out-of-flow-in-multicolumn-025.html: FAIL (Chrome: PASS, Safari: PASS)

Whiteboard: [wptsync downstream] → [wptsync downstream error]
Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/daae2f50015d
[wpt PR 28047] - [LayoutNG] Nested abspos/fixedpos in multicol, a=testonly
https://hg.mozilla.org/integration/autoland/rev/02a30110511e
[wpt PR 28047] - Update wpt metadata, a=testonly
Whiteboard: [wptsync downstream error] → [wptsync downstream]
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 88 Branch
You need to log in before you can comment on or make changes to this bug.