Closed Bug 1557365 Opened 5 years ago Closed 5 years ago

[wpt-sync] Sync PR 16859 - [LayoutNG] Only reset a legacy cached result if OOF-positioned.

Categories

(Core :: CSS Parsing and Computation, defect, P4)

defect

Tracking

()

RESOLVED FIXED
mozilla69
Tracking Status
firefox69 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync upstream])

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

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

Ian Kilpatrick <ikilpatrick@chromium.org> wrote:

[LayoutNG] Only reset a legacy cached result if OOF-positioned.

We had an issue with our simplified layout algorithm + relayout boundary
roots.

For this to trigger we needed a (legacy) layout object to be marked for
simplified layout which was also a relayout boundary root.

During LocalFrameView::PerformLayout, LayoutBox::UpdateLayout would run
on the legacy LayoutBox, and during LayoutBox::UpdateAfterLayout, this
would clear the LayoutBox::cached_layout_result_.

During another relayout boundary layout, we'd trigger simplified layout
for an NG node. This expects that there is always a cached layout
result associated with a box.
However this now wasn't the case, as the child had previously cleared
it, within LayoutBox::UpdateAfterLayout.

The guard inside LayoutBox::UpdateAfterLayout was designed to protect
against OOF-positioned nodes changing their layout parent, this
modifies that check do only clear the layout result of OOF-positioned
legacy layout objects.

Bug: 963387, 963433, 963620
Change-Id: Ice1202bdb939689e26e24a8690a52e7d7e82ecbc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1614082
Reviewed-by: Aleks Totic \<atotic@chromium.org>
Commit-Queue: Ian Kilpatrick \<ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#660166}

Component: web-platform-tests → CSS Parsing and Computation
Product: Testing → Core
Pushed by james@hoppipolla.co.uk:
https://hg.mozilla.org/integration/mozilla-inbound/rev/79f62b3613d8
[wpt PR 16859] - [LayoutNG] Only reset a legacy cached result if OOF-positioned., a=testonly
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69
Whiteboard: [wptsync downstream] → [wptsync upstream]
You need to log in before you can comment on or make changes to this bug.