diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:34:42 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:34:42 +0000 |
commit | da4c7e7ed675c3bf405668739c3012d140856109 (patch) | |
tree | cdd868dba063fecba609a1d819de271f0d51b23e /testing/web-platform/tests/fenced-frame/shared-workers.https.html | |
parent | Adding upstream version 125.0.3. (diff) | |
download | firefox-da4c7e7ed675c3bf405668739c3012d140856109.tar.xz firefox-da4c7e7ed675c3bf405668739c3012d140856109.zip |
Adding upstream version 126.0.upstream/126.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/fenced-frame/shared-workers.https.html')
-rw-r--r-- | testing/web-platform/tests/fenced-frame/shared-workers.https.html | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fenced-frame/shared-workers.https.html b/testing/web-platform/tests/fenced-frame/shared-workers.https.html new file mode 100644 index 0000000000..0e08d6857f --- /dev/null +++ b/testing/web-platform/tests/fenced-frame/shared-workers.https.html @@ -0,0 +1,42 @@ + +<!DOCTYPE html> +<title>Test shared workers aren't shared across fenced frame boundaries.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/utils.js"></script> +<script src="/common/dispatcher/dispatcher.js"></script> +<script src="resources/utils.js"></script> +<body> +<script> +promise_test(async(t) => { + const fencedframe = await attachFencedFrameContext(); + const worker = new SharedWorker( + "/fenced-frame/resources/shared-worker.js"); + + const messagePromise = new Promise((resolve, reject) => { + worker.port.onmessage = evt => { + // The main frame should not get a postMessage from the fenced frame's + // SharedWorker, even though the main frame and fenced frame are + // same-origin to each other. + reject(); + }; + }); + await fencedframe.execute(async () => { + // The worker will take anything postMessaged to it and postMessage it to + // all registered ports. + const worker = new SharedWorker( + "/fenced-frame/resources/shared-worker.js"); + worker.port.postMessage("message"); + await new Promise((resolve) => { + // Sanity check that the postMessage() is making to the fenced frame. + worker.port.onmessage = evt => { + resolve(); + }; + }); + }); + const timeout = new Promise(r => t.step_timeout(r, 1000)); + await Promise.race([messagePromise, timeout]); + +}, 'Shared workers should not be shared across fenced frame boundaries'); +</script> +</body> |