<!-- webkit-test-runner [ enableBackForwardCache=true ] -->
<body onload="redirect()">
<!-- Needs to take two seconds, because a faster refresh would result in not creating a b/f item for the navigation -->
<iframe src='data:text/html,<meta http-equiv="Refresh" content="2; URL=about:blank"><script>if (window.testRunner) { window.onpagehide=function(e){alert(&apos;pagehide &apos; + e.persisted)}; }</script>'></iframe>
<a id="outerLink" href='data:text/html,<p>PASSED if didn&apos;t crash in two seconds.</p><script>if (window.testRunner) setTimeout("testRunner.notifyDone()", 2500); </script>'>test</a>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function redirect()
{
    setTimeout(function () {
        if (window.eventSender) {
            var el = document.getElementById("outerLink");
            eventSender.mouseMoveTo(el.offsetLeft + 5, el.offsetTop + 5);
            eventSender.mouseDown();
            eventSender.mouseUp();
        }
    }, 0);
}
</script>
