mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 05:11:16 +00:00
23df3cab6b
With non-SHIP Desktop we would propagate the session storage across process switches using session restore, so the internal propagation was diabled. However, android's session restore has no handling for session storage, meaning that all session storage is discarded. This changes the logic to always use the internal propagation, even when SHIP is disabled. Differential Revision: https://phabricator.services.mozilla.com/D188647
57 lines
1.8 KiB
HTML
57 lines
1.8 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=1790666
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 1790666</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
</head>
|
|
<body>
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1790666">Mozilla Bug 1790666</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none">
|
|
|
|
</div>
|
|
<pre id="test">
|
|
<script type="application/javascript">
|
|
async function singleTest(testValue, description) {
|
|
info(`Starting test: ${description}`);
|
|
|
|
let bc = new BroadcastChannel("testChannel");
|
|
let promise = new Promise(resolve => {
|
|
bc.addEventListener("message", event => {
|
|
info(`received message from testChannel: ${event.data}`);
|
|
resolve(event.data);
|
|
}, { once: true });
|
|
});
|
|
|
|
info("Opening pop-up");
|
|
let popup = window.open("", "_blank");
|
|
popup.sessionStorage.setItem("testItem", testValue);
|
|
|
|
info("Navigating pop-up to COOP page");
|
|
popup.location = new URL("file_sessionstorage_across_coop.html", window.location);
|
|
|
|
let newValue = await promise;
|
|
is(newValue, testValue, "Value matches expected value");
|
|
}
|
|
|
|
add_task(async function() {
|
|
// Cross-Origin-Opener-Policy is only supported in secure contexts, so
|
|
// make the test a secure context.
|
|
await SpecialPowers.pushPrefEnv({
|
|
"set": [["dom.securecontext.allowlist", "mochi.test"]],
|
|
});
|
|
|
|
await singleTest("short test value", "short test value");
|
|
|
|
let longValue = "A".repeat(SpecialPowers.getIntPref("browser.sessionstore.dom_storage_limit") * 2);
|
|
await singleTest(longValue, "long test value");
|
|
});
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|