<html>
<head>
<script>

function navigate()
{
    if (location.hash == "") {
        if (window.layoutTestController) {
            layoutTestController.dumpAsText();
            layoutTestController.waitUntilDone();
        }

        history.pushState({ }, "", window.location + "#1");
        setTimeout(function() {
            window.location.href = 'data:text/html, \
                <html style="height: 200%"> \
                <body onunload=""> \
                <script> \
                    document.body.offsetWidth; \
                    setTimeout("window.history.back();", 0); \
                <' + '/script> \
                </body> \
                </html> \
            ';
        }, 0);
        return;
    }

    setTimeout(function () { 
        var result = document.getElementById("result");
        result.innerHTML = "Success if the web process did not crash."
        if (window.layoutTestController)
            layoutTestController.notifyDone();
    }, 0);
}

</script>
</head>
<body onpageshow="navigate();">
    <div id="result">Test did not complete</div>
</body>
</htmL>
