diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals')
9 files changed, 72 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/current/current.html b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/current/current.html new file mode 100644 index 0000000000..e6261f8388 --- /dev/null +++ b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/current/current.html @@ -0,0 +1,3 @@ +<!doctype html> +<meta charset=utf-8> +<title>Current page</title> diff --git a/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/current/current.html.headers b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/current/current.html.headers new file mode 100644 index 0000000000..6604450991 --- /dev/null +++ b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/current/current.html.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp diff --git a/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/current/worker.js b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/current/worker.js new file mode 100644 index 0000000000..44103842a4 --- /dev/null +++ b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/current/worker.js @@ -0,0 +1 @@ +postMessage('current'); diff --git a/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/incumbent/incumbent.html b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/incumbent/incumbent.html new file mode 100644 index 0000000000..d8bd1ae2c0 --- /dev/null +++ b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/incumbent/incumbent.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Incumbent page</title> + +<iframe src="../current/current.html" id="c"></iframe> + +<script> + const current = document.querySelector("#c").contentWindow; + + window.hello = () => { + const worker = new current.Worker('worker.js'); + worker.onmessage = e => { parent.postMessage(e.data, '*'); } + }; +</script> diff --git a/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/incumbent/incumbent.html.headers b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/incumbent/incumbent.html.headers new file mode 100644 index 0000000000..6604450991 --- /dev/null +++ b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/incumbent/incumbent.html.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp diff --git a/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/incumbent/worker.js b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/incumbent/worker.js new file mode 100644 index 0000000000..03f02a8690 --- /dev/null +++ b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/incumbent/worker.js @@ -0,0 +1 @@ +postMessage('incumbent'); diff --git a/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/worker.js b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/worker.js new file mode 100644 index 0000000000..fcc521e313 --- /dev/null +++ b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/worker.js @@ -0,0 +1 @@ +postMessage('entry'); diff --git a/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html new file mode 100644 index 0000000000..e1f16a61e1 --- /dev/null +++ b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Multiple globals for Worker constructor: COEP reports</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<!-- This is the entry global --> + +<iframe src="incumbent/incumbent.html"></iframe> +<button onclick="" id="button">Hello</button> + +<script> +async function observeReports(global) { + const reports = []; + const observer = new global.ReportingObserver((rs) => { + for (const r of rs) { + reports.push(r.toJSON()); + } + }); + observer.observe(); + + // Wait 5000ms for reports to settle. + await new Promise(r => step_timeout(r, 5000)); + return reports; +} + +async_test((t) => { + onload = t.step_func(() => { + Promise.all([ + observeReports(window), + observeReports(frames[0]), + observeReports(frames[0].frames[0]) + ]).then(t.step_func_done(([entry, incumbent, current]) => { + assert_equals(entry.length, 0); + assert_equals(incumbent.length, 0); + assert_equals(current.length, 1); + const report = current[0]; + assert_equals(report.type, 'coep'); + assert_equals(report.url, new URL('current/current.html', location.href).href); + assert_equals(report.body.type, 'worker initialization'); + assert_equals(report.body.blockedURL, new URL('current/worker.js', location.href).href); + assert_equals(report.body.disposition, 'enforce'); + })); + + frames[0].hello(); + }); + onmessage = t.unreached_func('worker should have been blocked by COEP'); +}); +</script> diff --git a/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html.headers b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html.headers new file mode 100644 index 0000000000..6604450991 --- /dev/null +++ b/testing/web-platform/tests/html/cross-origin-embedder-policy/multi-globals/workers-coep-report.https.html.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp |