blob: 02b7da9afad99575890e8c54bdbe44debf307c20 [file] [log] [blame]
<!DOCTYPE html>
<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.setPopupBlockingEnabled(false);
testRunner.setCloseRemainingWindowsWhenComplete(true);
startTest();
document.querySelector('button').remove();
}
</script>
</body>
</html>