<head>
    <style>
        :first-of-type {
            position: fixed;
        }
    </style>
</head>

<body>
    <p>
        WebKit bug #<a href="https://bugs.webkit.org/show_bug.cgi?id=129119">129119</a>
    </p>
    <p>
        This test passes if it does not crash after reloading. To run manually, reload the page.
    </p>
</body>

<script>
function runTest()
{
    document.body.offetTop;

    if (!window.sessionStorage)
        return;

    if (sessionStorage.testCompleted) {
        delete sessionStorage.testCompleted;
        if (window.testRunner)
            testRunner.notifyDone();
    } else {
        sessionStorage.testCompleted = true;
        window.location.reload(true);
    }
}

if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
}

window.addEventListener('DOMContentLoaded', function() { window.setTimeout(runTest, 100) }, false);
</script>
