44 lines
1.2 KiB
HTML
44 lines
1.2 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
|
|
add_task(async function test_open_javascript_noopener() {
|
|
const topic = "test-javascript-was-run";
|
|
function jsuri(version) {
|
|
return `javascript:SpecialPowers.notifyObservers(null, "${topic}", "${version}");window.close()`;
|
|
}
|
|
|
|
let seen = [];
|
|
function observer(_subject, _topic, data) {
|
|
info(`got notification ${data}`);
|
|
seen.push(data);
|
|
}
|
|
SpecialPowers.addObserver(observer, topic);
|
|
|
|
isDeeply(seen, [], "seen no test notifications");
|
|
window.open(jsuri("1"));
|
|
|
|
// Bounce off the parent process to make sure the JS will have run.
|
|
await SpecialPowers.spawnChrome([], () => {});
|
|
|
|
isDeeply(seen, ["1"], "seen the opener notification");
|
|
|
|
window.open(jsuri("2"), "", "noopener");
|
|
|
|
// Bounce off the parent process to make sure the JS will have run.
|
|
await SpecialPowers.spawnChrome([], () => {});
|
|
|
|
isDeeply(seen, ["1"], "didn't get a notification from the noopener popup");
|
|
|
|
SpecialPowers.removeObserver(observer, topic);
|
|
});
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|