diff options
Diffstat (limited to 'testing/web-platform/tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-2.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-2.html | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-2.html b/testing/web-platform/tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-2.html new file mode 100644 index 0000000000..cc7eb5e5e0 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/allow-scripts-flag-changing-2.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Meta refresh of the original iframe is not blocked if moved into a sandboxed iframe</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<link rel="help" href="https://html.spec.whatwg.org/multipage/semantics.html#attr-meta-http-equiv-refresh"> + +<div id="log"></div> + +<script> +"use strict"; +setup({ single_test: true }); + +const sourceIFrame = document.createElement("iframe"); + +const destIFrame = document.createElement("iframe"); +destIFrame.setAttribute("sandbox", "allow-same-origin"); + +let sourceLoadCount = 0; +let destLoadCount = 0; + +sourceIFrame.onload = () => { + ++sourceLoadCount; + + if (sourceLoadCount === 2) { + assert_equals(sourceIFrame.contentDocument.body.textContent.trim(), "foo"); + done(); + } + + maybeStartTest(); +}; + +destIFrame.onload = () => { + ++destLoadCount; + + if (destLoadCount === 2) { + assert_unreached("The iframe into which the meta was moved must not refresh"); + } + + maybeStartTest(); +}; + +function maybeStartTest() { + if (sourceLoadCount === 1 && destLoadCount === 1) { + const meta = sourceIFrame.contentDocument.querySelector("meta"); + destIFrame.contentDocument.body.appendChild(meta); + } +} + +sourceIFrame.src = "support/refresh.sub.html?input=" + encodeURIComponent("1; url=foo"); +destIFrame.src = "support/ufoo"; + +document.body.appendChild(sourceIFrame); +document.body.appendChild(destIFrame); +</script> |