<!-- webkit-test-runner [ enableBackForwardCache=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>
