diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:14:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:14:29 +0000 |
commit | fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch) | |
tree | 4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html | |
parent | Releasing progress-linux version 124.0.1-1~progress7.99u1. (diff) | |
download | firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.tar.xz firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.zip |
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html')
-rw-r--r-- | testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html new file mode 100644 index 0000000000..6b3b3104ef --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.https.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Navigation resulted download in sandbox is allowed by allow-downloads.</title> +<meta name="timeout" content="long" /> +<link rel="help" href="https://html.spec.whatwg.org/multipage/#attr-iframe-sandbox"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/#the-iframe-element"> +<script src="/resources/testharness.js"></script> +<script src='/resources/testharnessreport.js'></script> +<script src="support/iframe_sandbox_download_helper.js"></script> +<body> +<script> +"use strict"; + +async_test(t => { + const token = "{{$id:uuid()}}"; + var iframe = document.createElement("iframe"); + iframe.srcdoc = "<a>Download</a>"; + iframe.sandbox = "allow-same-origin allow-downloads"; + iframe.onload = t.step_func(function () { + iframe.contentWindow.addEventListener( + "unload", t.unreached_func("Unexpected navigation.")); + var anchor = iframe.contentDocument.getElementsByTagName('a')[0]; + // Set |finish-delay| to let the server stream a response over a period + // of time, so it's able to catch potential download cancellation by + // detecting a socket close. + anchor.href = "support/download_stash.py?token=" + token + "&finish-delay=" + StreamDownloadFinishDelay(); + anchor.click(); + AssertDownloadSuccess(t, token, StreamDownloadFinishDelay() + DownloadVerifyDelay()); + }); + + document.body.appendChild(iframe); +}, "Navigation resulted download in sandbox is allowed by allow-downloads."); + +async_test(t => { + const token = "{{$id:uuid()}}"; + var iframe = document.createElement("iframe"); + + const folder = location.origin+"/html/semantics/embedded-content/the-iframe-element/"; + const href = `${folder}support/download_stash.py?token=${token}&finish-delay=${StreamDownloadFinishDelay() }`; + const objectDoc =`<a href="${href}">download</a> + <${"script"}> document.querySelector("a").click(); </${"script"}>`; + + iframe.srcdoc = `<object data='data:text/html,${objectDoc}'></object>`; + iframe.sandbox = "allow-same-origin allow-scripts allow-downloads"; + iframe.addEventListener("load",()=>{ + AssertDownloadSuccess(t, token, StreamDownloadFinishDelay() + DownloadVerifyDelay()); + }) + document.body.appendChild(iframe); +}, "Navigation resulted download in sandbox from <object> is allowed by allow-downloads."); + +</script> +</body> |