<!DOCTYPE html>
<style>
/* Body is large enough to scroll but not enough to restore the scroll
   position without clamping. */
body {
    height: 2000px;
    width: 2000px;
}
</style>

<div id='console'></div>

<script src="../../resources/js-test.js"></script>
<script>
jsTestIsAsync = true
setPrintTestResultsLazily();
description('Test ensures that frame scroll position is not prematurely ' +
            'clamped and restored before load event fires.');

// Forcing layout causes the frame to attempt to restore scroll position if
// possible even before page loading is complete.
forceLayout();
debug('Scroll position should not be clamped and restored while frame is loading');
shouldBe('document.scrollingElement.scrollLeft', '0');
shouldBe('document.scrollingElement.scrollTop', '0');

onload = function() {
    if (window.name == 'verification') {
        shouldBe('document.scrollingElement.scrollLeft', '5000');
        shouldBe('document.scrollingElement.scrollTop', '5001');

        window.name = "";
        setTimeout(function(){ window.scrollTo(0, 0); }, 0);
        finishJSTest();
    } else {
        window.scrollTo(5000, 5001);
        shouldBe('document.scrollingElement.scrollLeft', '5000');
        shouldBe('document.scrollingElement.scrollTop', '5001');
        setTimeout(function(){
            window.name = "verification";
            window.location = "../../resources/back.html";
        }, 0);
    }
}

function forceLayout () {
    document.body.scrollTop;
}
</script>

<style>
body {
    height: 9999px;
    width: 9999px;
}
</style>