forked from mozilla/gecko-dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1589102 - Part 9: Add a crashtest for navigating remote page to a…
…bout:blank, r=mattwoodrow Differential Revision: https://phabricator.services.mozilla.com/D49427
- Loading branch information
Showing
3 changed files
with
56 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
<html> | ||
<body onload="bodyLoaded()">Frame 1</body> | ||
<script> | ||
function bodyLoaded() { | ||
opener.postMessage("body-loaded", "*"); | ||
} | ||
</script> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
46 changes: 46 additions & 0 deletions
46
docshell/test/navigation/test_aboutblank_change_process.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
<!DOCTYPE html> | ||
<head> | ||
<meta charset="utf-8"> | ||
<script src="/tests/SimpleTest/SimpleTest.js"></script> | ||
<link rel="stylesheet" href="/tests/SimpleTest/test.css" /> | ||
</head> | ||
<script> | ||
// Open a window and navigate it from http://example.net to about:blank | ||
// With fission, we should switch processes and about:blank should load in | ||
// the same process as this test page. | ||
// This is a crash test. | ||
add_task(async function test_aboutblank_change_process() { | ||
let exampleLoaded = new Promise(resolve => { | ||
function onMessage(event) { | ||
if (event.data == "body-loaded") { | ||
window.removeEventListener("message", onMessage); | ||
resolve(); | ||
} | ||
} | ||
window.addEventListener("message", onMessage); | ||
}); | ||
let win = window.open(); | ||
win.location = "http://example.net/tests/docshell/test/navigation/file_tell_opener.html"; | ||
await exampleLoaded; | ||
|
||
win.location = "about:blank"; | ||
|
||
// A crash happens somewhere here when about:blank does not go via | ||
// DocumentChannel with fission enabled | ||
|
||
// Wait for about:blank to load in this process | ||
await SimpleTest.promiseWaitForCondition(() => { | ||
try { | ||
return win.location.href == "about:blank"; | ||
} catch (e) { | ||
// While the `win` still has example.net page loaded, `win.location` will | ||
// be a cross origin object and querying win.location.href will throw a | ||
// SecurityError. Return false as long as this is the case. | ||
return false; | ||
} | ||
}) | ||
|
||
ok(true, "We did not crash"); | ||
win.close(); | ||
}); | ||
</script> |