mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
381332c51e
This was generated with the script at https://bug1544051.bmoattachments.org/attachment.cgi?id=9058672 Differential Revision: https://phabricator.services.mozilla.com/D27761 --HG-- extra : moz-landing-system : lando
55 lines
1.7 KiB
HTML
55 lines
1.7 KiB
HTML
<!--
|
|
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>
|