Files
sousa-gecko/testing/web-platform/tests/css/CSS2/floats/crashtests/float-dynamic-change-2.html
T
Ian Kilpatrick 6b0bb5eb4e Bug 2010660 [wpt PR 57186] - Reapply "[layout] Reinsert LayoutObjects which undergo a in-flow state change.", a=testonly
Automatic update from web-platform-tests
Reapply "[layout] Reinsert LayoutObjects which undergo a in-flow state change."

This reverts commit 07002c40c631b6ee35ee32d2bbccacc75e9052a0.

This patch reinserts layout-objects into the layout-tree when their
out-of-flow state changes. (E.g. a change from position:static to
position:absolute or float:left to float:none).

When their out-of-flow state changes we'll remove it from the
layout-object tree, update the style, then reinsert into the tree. This
is similar to layout-tree reattachment, except the layout-object (and
related objects/caches) are kept around.

This simplifies our logic when style changes in this way. Previously
we'd need to mutate the layout tree during LayoutObject::SetStyle which
was complex and error prone, and a source of bugs.

See removal patch for complexity we can remove:
https://chromium-review.googlesource.com/c/chromium/src/+/7263470

All behaviour changes should be behind the flag:
LayoutReinsertOnInFlowStateChange

Bug: 469120960
Change-Id: I983967e03d10552ad2f8cd1f70b4c3c2ea079836
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7427180
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1569882}

--

wpt-commits: 3166e6fb4107f8a51457bd73619356f2d6172d1d
wpt-pr: 57186
2026-01-21 10:44:46 +00:00

15 lines
406 B
HTML

<!DOCTYPE html>
<link rel="help" href="https://crbug.com/470469225">
<script>
const iframe = document.createElement('iframe');
iframe.sandbox = 'allow-top-navigation';
iframe.srcdoc = 'test';
iframe.style.position = 'absolute';
document.documentElement.appendChild(iframe);
iframe.onload = () => {
iframe.style.position = 'initial';
iframe.style.float = 'left';
iframe.style.zoom = '2';
};
</script>