<html>
<script>
    if (window.testRunner) {
        testRunner.waitUntilDone();
        testRunner.dumpAsText();
    }
    function testScroll() {
      window.setTimeout(function() {
          if (window.pageYOffset == 20) {
            document.body.innerHTML = "SUCCESS";
            testRunner.notifyDone();
          } else {
            window.scroll(0,20);
            window.setTimeout(function() {
              window.location.reload();
            }, 1000);
          }
        }, 0);
    }
    onload = testScroll;
</script>

<body>
This test checks that a page reloaded by window.location.reload() restores its scroll state.
https://bugs.webkit.org/show_bug.cgi?id=62482
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>
