<!-- webkit-test-runner [ enablePageCache=true ] -->
<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test-pre.js"></script>
<script>
description('Tests that removing a frame in a detached document after navigation does not cause a crash on navigating back');
window.jsTestIsAsync = true;

if (window.testRunner)
    testRunner.setCanOpenWindows();

function removeFrameInChild()
{
    setTimeout(function() {
        testFrame.remove();
    }, 0);
}

window.addEventListener('load', function() {
    newWindow = open("resources/page-cache-window-with-iframe.html", "one");
    newWindow.onload = function () {
        newWindow.onload = null;
        otherWindowDocument = newWindow.document;
        testFrame = otherWindowDocument.getElementsByTagName("iframe")[0];
    }
}, false);
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>
