<!-- webkit-test-runner [ enableBackForwardCache=true ] -->
<!DOCTYPE html>
<html>
<head>
<title>Show composited iframe contents when navigating back to page</title>
<link rel="stylesheet" href="resources/show-composited-iframe-on-back-button.css">
<script>
if (window.testRunner)
    testRunner.waitUntilDone();

onpageshow = (pageTransitionEvent) => {
    if (pageTransitionEvent.persisted) {
        if (window.testRunner)
            testRunner.notifyDone();
    }
}

onload = () => {
    setTimeout(() => {
        window.location = "../fast/history/resources/page-cache-helper.html";
    }, 0);
}

</script>
</head>
<body>
<p>This page has a composited iframe. When navigating to a new page and then back to this one, the iframe contents should show up.</p>
<p>To run this test manually, perform the following:</p>
<ol>
    <li>Click <a href="http://apple.com">here</a>.</li>
    <li>Click the back button in the browser.</li>
</ol>
<p>This test PASSED if a blue box is visible below. Otherwise, it FAILED.</p>
<iframe class="container" scrolling="no" src="resources/composited-subframe.html"></iframe>
</body>
</html>
