mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-04 11:26:09 +00:00
c55748ac0b
Differential Revision: https://phabricator.services.mozilla.com/D149176
62 lines
1.9 KiB
HTML
62 lines
1.9 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Test referrer with going back</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
|
|
<script>
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
// file_bug1773192_1.html will send a message with some data on pageshow.
|
|
function waitForData(bc) {
|
|
return new Promise(resolve => {
|
|
bc.addEventListener(
|
|
"message",
|
|
({ data }) => {
|
|
resolve(data);
|
|
},
|
|
{ once: true }
|
|
);
|
|
});
|
|
}
|
|
async function runTest() {
|
|
let bc = new BroadcastChannel("bug1743353");
|
|
|
|
let getData = waitForData(bc);
|
|
|
|
window.open("file_bug1773192_1.html", "", "noreferrer");
|
|
|
|
await getData.then(({ referrer }) => {
|
|
is(referrer, "", "Referrer should be empty at first.");
|
|
});
|
|
|
|
getData = waitForData(bc);
|
|
|
|
// When file_bug1773192_1.html receives this message it will navigate to
|
|
// file_bug1773192_2.html. file_bug1773192_2.html removes itself from
|
|
// history with replaceState and submits a form with the POST method to
|
|
// file_bug1773192_3.sjs. file_bug1773192_3.sjs goes back in history.
|
|
// We should end up back at file_bug1773192_1.html, which will send a
|
|
// message with some data on pageshow.
|
|
bc.postMessage("next");
|
|
|
|
await getData.then(({ location, referrer }) => {
|
|
let firstURL = new URL("file_bug1773192_1.html", location).toString();
|
|
is(location, firstURL, "Location should be the first page again.");
|
|
is(referrer, firstURL, "Referrer should also be the first page.");
|
|
});
|
|
|
|
bc.postMessage("close");
|
|
|
|
SimpleTest.finish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest();">
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none"></div>
|
|
<pre id="test"></pre>
|
|
</body>
|
|
</html>
|