<html>
<body>
<pre id="log"></pre>
</body>
<script>

if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
    testRunner.overridePreference("WebKitUsesPageCachePreferenceKey", 1);
}

window.onpageshow = function(evt) {
    // Location changes need to happen outside the onload handler to generate history entries.
    setTimeout(function() {window.location.href = 'resources/unschedule-relayout-after-unload-target.html';}, 0);
};

window.onpagehide = function(evt) {
    document.getElementById('log').innerHTML += 'onpagehide';
};

</script>
</html>
