зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1694993 - Part 5: Add a simple test for javascript URIs with noopener, r=smaug
Depends on D154566 Differential Revision: https://phabricator.services.mozilla.com/D154567
This commit is contained in:
Родитель
182e87b678
Коммит
373e6ff98e
|
@ -215,3 +215,4 @@ skip-if = !sessionHistoryInParent
|
|||
support-files =
|
||||
file_ship_beforeunload_fired.html
|
||||
skip-if = !sessionHistoryInParent
|
||||
[test_open_javascript_noopener.html]
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
<!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>
|
Загрузка…
Ссылка в новой задаче