<!
DOCTYPE HTML>
<
html>
<
head>
<
script type=
"application/javascript" src=
"/tests/SimpleTest/SimpleTest.js"></
script>
<
link rel=
"stylesheet" type=
"text/css" href=
"/tests/SimpleTest/test.css" />
<
script type=
"application/javascript" src=
"/tests/SimpleTest/SpecialPowers.js"></
script>
<
script type=
"application/javascript">
// Since BFCache in parent requires no opener, use BroadcastChannel
// to communicate with file_same_url.
html.
let bc = SpecialPowers.wrap(BroadcastChannel).unpartitionedTestingChannel(
"test_same_url");
async function test() {
var promise;
let historyLength;
promise = waitForLoad();
window.open(
"file_same_url.html",
"_blank",
"noopener=yes");
historyLength = await promise;
is(historyLength,
1,
"before same page navigation");
promise = waitForLoad();
bc.postMessage(
"linkClick");
historyLength = await promise;
is(historyLength,
1,
"after same page navigation");
bc.postMessage(
"closeWin");
SimpleTest.finish();
}
async function waitForLoad() {
return new Promise(resolve => {
let listener = e => {
if (e.data.bodyOnLoad) {
bc.removeEventListener(
"message", listener);
setTimeout(() => resolve(e.data.bodyOnLoad),
0);
}
};
bc.addEventListener(
"message", listener);
});
}
</
script>
</
head>
<
a target=
"_blank" href=
"https://bugzilla.mozilla.org/show_bug.cgi?id=1745730">Bug
1745730</
a>
<
p id=
"display"></
p>
<
div id=
"content" style=
"display: none">
</
div>
<
pre id=
"test">
<
script type=
"text/javascript">
SimpleTest.waitForExplicitFinish();
</
script>
</
pre>
<
body onload=
"test()">
</
body>
</
html>