<html>
<script>
function openWindow()
{
    window.open('resources/crash-when-navigating-away-then-back.html')   
}

if (window.layoutTestController) {
    layoutTestController.dumpAsText()
    layoutTestController.waitUntilDone();
    layoutTestController.setCanOpenWindows();
} else {
    document.write('<div id="manual-instructions">Click <a href="javascript:openWindow()">this link</a> twice. A window should open and close twice without crashing.</div>')
}

function closedWindow()
{
    if (window.layoutTestController)
        setTimeout(openWindow, 100);
}

</script>
<body onload="if (window.layoutTestController) openWindow()">
<div>This tests that loading a page with a manifest, navigating away from the page, and then back does not cause a crash.</div>
<div id="result">FAILURE - test not completed</div>
</html>
</div>
