diff options
Diffstat (limited to 'testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window.js')
-rw-r--r-- | testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window.js | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window.js b/testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window.js new file mode 100644 index 0000000000..fb26c70a9c --- /dev/null +++ b/testing/web-platform/tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window.js @@ -0,0 +1,19 @@ +// META: script=resources/document-open-side-effects.js + +async_test(t => { + const iframe = document.body.appendChild(document.createElement("iframe")); + t.add_cleanup(() => iframe.remove()); + self.testSynchronousScript = t.step_func(() => { + // Here, the entry settings object is still the iframe's. Delay it in such + // a way that makes the entry settings object the top-level page's, but + // without delaying too much that the parser becomes inactive. A microtask + // is perfect as it's executed in "clean up after running script". + Promise.resolve().then(t.step_func_done(() => { + const origURL = iframe.contentDocument.URL; + assertDocumentIsReadyForSideEffectsTest(iframe.contentDocument, "active parser whose script nesting level is greater than 0"); + assert_equals(iframe.contentDocument.open(), iframe.contentDocument); + assertOpenHasNoSideEffects(iframe.contentDocument, origURL, "active parser whose script nesting level is greater than 0"); + })); + }); + iframe.src = "resources/bailout-order-synchronous-script-frame.html"; +}, "document.open bailout should not have any side effects (active parser whose script nesting level is greater than 0)"); |