<!DOCTYPE html>
<html>
<body>
<p>This tests navigating a sibling iframe during beforeunload. The navigation should be prevented.</p>
<div id="log"></div>
<script>

if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

const log = document.getElementById('log');
const frame1 = document.createElement('iframe');
document.body.appendChild(frame1);
frame1.contentDocument.open();
frame1.contentDocument.write(`<script> window.onbeforeunload = () => top.startTest() </` + `script>`);
frame1.contentDocument.close();

const frame2 = document.createElement('iframe');
document.body.appendChild(frame2);

window.onmessage = (event) => {
    if (event.data == 'load')
        log.textContent = 'FAIL - the navigation succeeded';
}

function startTest() {
    frame2.src = 'resources/message-top.html';
    setTimeout(() => {
        if (log.textContent == '')
            log.textContent = 'PASS';
        if (window.testRunner)
            testRunner.notifyDone();
    }, 1000);
}

frame1.src = 'about:blank';

</script>
</body>
</html>
