53 lines
1.4 KiB
HTML
53 lines
1.4 KiB
HTML
<!DOCTYPE html><!-- webkit-test-runner [ JavaScriptCanOpenWindowsAutomatically=true ] -->
|
|
<html>
|
|
<body>
|
|
<p>This tests navigating a different window during beforeunload event. The page load should succeed.</p>
|
|
<button onclick="startTest(); this.remove();">Start test</button>
|
|
<div id="log"></div>
|
|
<script>
|
|
|
|
const frame = document.createElement('iframe');
|
|
document.body.appendChild(frame);
|
|
frame.contentDocument.open();
|
|
frame.contentDocument.write(`<script> window.onbeforeunload = () => top.didFireBeforeUnload(); </` + `script>`);
|
|
frame.contentDocument.close();
|
|
|
|
let differentWindow;
|
|
const log = document.getElementById('log');
|
|
function startTest() {
|
|
differentWindow = window.open('about:blank');
|
|
setTimeout(endTest, 1000);
|
|
frame.src = 'about:blank';
|
|
log.textContent = 'FAIL';
|
|
}
|
|
|
|
function didFireBeforeUnload() {
|
|
differentWindow.location.href = 'resources/message-opener.html';
|
|
}
|
|
|
|
window.onmessage = (event) => {
|
|
if (event.data == 'load') {
|
|
log.textContent = 'PASS';
|
|
endTest();
|
|
}
|
|
}
|
|
|
|
function endTest() {
|
|
differentWindow.close();
|
|
if (window.testRunner)
|
|
testRunner.notifyDone();
|
|
}
|
|
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
testRunner.waitUntilDone();
|
|
testRunner.setCanOpenWindows()
|
|
testRunner.setCloseRemainingWindowsWhenComplete(true);
|
|
startTest();
|
|
document.querySelector('button').remove();
|
|
}
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|