<!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>