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 /dom/workers/test/test_sharedWorker_thirdparty.html | |
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 'dom/workers/test/test_sharedWorker_thirdparty.html')
-rw-r--r-- | dom/workers/test/test_sharedWorker_thirdparty.html | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/dom/workers/test/test_sharedWorker_thirdparty.html b/dom/workers/test/test_sharedWorker_thirdparty.html new file mode 100644 index 0000000000..caeb122bba --- /dev/null +++ b/dom/workers/test/test_sharedWorker_thirdparty.html @@ -0,0 +1,54 @@ +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<!DOCTYPE HTML> +<html> +<head> + <title>Test for SharedWorker in 3rd Party Iframes</title> + <script src="/tests/SimpleTest/SimpleTest.js"> </script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"> +</head> +<body> + <script class="testbody"> + + function testThirdPartyFrame(name) { + return new Promise(resolve => { + // Let's use a window, loading the same origin, in order to have the new + // cookie-policy applied. + let w = window.open("sharedWorker_thirdparty_window.html?name=" + name); + window.addEventListener('message', function messageListener(evt) { + if (evt.data.name !== name) { + return; + } + w.close(); + window.removeEventListener('message', messageListener); + resolve(evt.data.result); + }); + }); + } + + const COOKIE_BEHAVIOR_ACCEPT = 0; + const COOKIE_BEHAVIOR_REJECTFOREIGN = 1; + + add_task(async function allowed() { + await SpecialPowers.pushPrefEnv({ set: [ + ["network.cookie.cookieBehavior", COOKIE_BEHAVIOR_ACCEPT] + ]}); + let result = await testThirdPartyFrame('allowed'); + ok(result === 'allowed', + 'SharedWorker should be allowed when 3rd party iframes can access storage'); + }); + + add_task(async function blocked() { + await SpecialPowers.pushPrefEnv({ set: [ + ["network.cookie.cookieBehavior", COOKIE_BEHAVIOR_REJECTFOREIGN] + ]}); + let result = await testThirdPartyFrame('blocked'); + ok(result === 'blocked', + 'SharedWorker should not be allowed when 3rd party iframes are denied storage'); + }); + + </script> +</body> +</html> |