<!-- webkit-test-runner [ UsesBackForwardCache=true ] -->
<!DOCTYPE html>
<html>
<head>
<script>
    function done() {
        setTimeout(function () {
            if (window.testRunner)
                testRunner.notifyDone();
        }, 300);
    }

    function runTest() {
        if (location.hash == "") {
            if (window.testRunner)
                testRunner.waitUntilDone();

            history.pushState({ }, "", window.location + "#1");
            setTimeout("window.location.href = 'resources/history-back-for-pfd-test.html'", 0);

            // This is for WK2.
            done();
        } else {
            // This is for WK1.
            done();
        }
    }
</script>
</head>
<body onload='runTest();'>
    <!-- This tests if plugins from page cache show up after history navigation. -->
    <iframe src='../images/resources/green_rectangle.pdf'></iframe>
</body>
</html>
