[wpt-sync] Sync PR 46158 - DOM: Implement <iframe> state-preserving atomic moves
Categories
(Core :: DOM: Core & HTML, task, P4)
Tracking
()
Tracking | Status | |
---|---|---|
firefox128 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 46158 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/46158
Details from upstream follow.
Dominic Farolino <dom@chromium.org> wrote:
DOM: Implement <iframe> state-preserving atomic moves
This CL implements iframe-specific logic for state-preserving atomic
moves, as well as some web platform tests and unit tests. We
specifically that iframe documents are not reloaded during a call to
moveBefore()
, and that the order of frames inwindow.frames
remains
untouched. Much of the implementation revolves around how we manage
internal bookkeeping of subframe counts; this bookkeeping is used for
real world behavior in the node insertion/removal path 1, internal
optimizations 2, and Blink logic consistency assertions.There is still implementation work general to all nodes
(non-iframe-specific) to be done for state-preserving atomic moves
overall, like suppressing mutation events, and tweaking how
MutationObserver reacts tomoveBefore()
calls. That work will be done
in follow-up CLs.Bug: 40150299
Change-Id: If22ce5f96f8fbe98e126f2e8909aa852e5307bd6
Reviewed-on: https://chromium-review.googlesource.com/5314005
WPT-Export-Revision: 8fce4bcfc877d2b52443a471fa0392bb90eaeb58
Assignee | ||
Updated•9 months ago
|
Assignee | ||
Comment 1•9 months ago
|
||
Assignee | ||
Comment 2•9 months ago
|
||
CI Results
Ran 0 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 1 tests and 7 subtests
Status Summary
Firefox
OK
: 1
FAIL
: 7
Chrome
OK
: 1
FAIL
: 7
Safari
OK
: 1
FAIL
: 7
Links
Details
New Tests That Don't Pass
- /dom/nodes/moveBefore/tentative/iframe-document-preserve.window.html [wpt.fyi]
- moveBefore(): about:blank iframe's document is preserved:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - moveBefore(): simple same-origin document is preserved:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - moveBefore(): cross-origin iframe is preserved: remove new parent:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - moveBefore(): cross-origin iframe is preserved: remove self:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - moveBefore(): cross-origin iframe is preserved: remove self via replaceChildren():
FAIL
(Chrome:FAIL
, Safari:FAIL
) - moveBefore(): cross-origin iframe is preserved: remove self via innerHTML:
FAIL
(Chrome:FAIL
, Safari:FAIL
) - window.frames ordering does not change due to moveBefore():
FAIL
(Chrome:FAIL
, Safari:FAIL
)
- moveBefore(): about:blank iframe's document is preserved:
https://hg.mozilla.org/mozilla-central/rev/39a5a4f12bd1
https://hg.mozilla.org/mozilla-central/rev/3f929286ad17
Description
•