Files
sousa-gecko/testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/document-write/module-tla-delayed.html
T
Emilio Cobos Álvarez 33c8ba167e Bug 2017786 - Fix some tests which make wrong assumptions about setTimeout scheduling. r=hsivonen
Some document.write() WPTs made the assumption that a setTimeout() in
the parent window will run after the load event in the child frame, and
there's no such guarantee per spec.

The focus fixup rule test similarly relied on the rendering not being
suppressed by the time the test run. Do that by awaiting an animation
frame, not just a timeout.

Differential Revision: https://phabricator.services.mozilla.com/D301259
2026-05-19 11:23:02 +00:00

30 lines
1.0 KiB
HTML

<!doctype html>
<title>document.write in an imported module</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
async_test(t => {
// Expose {test} in the iframe for using the step_timeout helper.
document.test = t;
const iframe = document.createElement("iframe");
iframe.onunhandledrejection = t.unreached_func("Unhandled promise rejection detected");
iframe.onerror = t.unreached_func("Error loading iframe");
iframe.onload = t.step_func(() => {
assert_equals(iframe.contentDocument.body.textContent, "Initial body contents\n");
iframe.onload = null;
});
document.addEventListener("documentWriteDone", t.step_func_done(() => {
// If the timer fires before load, ignore the load listener.
iframe.onload = null;
assert_equals(iframe.contentDocument.body.textContent, "document.write body contents\n");
}));
iframe.src = "module-tla-delayed-iframe.html";
document.body.appendChild(iframe);
});
</script>