| <!DOCTYPE html> |
| <html> |
| <head> |
| <style> |
| iframe { |
| border: 10px solid black; |
| padding: 5px; |
| margin: 20px; |
| height: 150px; |
| width: 300px; |
| -webkit-box-shadow: 0 0 20px black; |
| } |
| |
| .container { |
| position: relative; |
| } |
| |
| .overlay { |
| position: absolute; |
| width: 50px; |
| height: 50px; |
| top: 5px; |
| left: 5px; |
| background-color: rgba(0, 0, 0, 0.2); |
| } |
| </style> |
| </head> |
| <body> |
| |
| <p> |
| This tests that layers are rebuilt properly after the page |
| is restored from the page cache. |
| </p> |
| |
| <!-- Some iframes with composited content. --> |
| <div class="container"> |
| <iframe src="resources/page-cache-iframe.html"></iframe> |
| <div class="overlay"></div> |
| </div> |
| <div class="container"> |
| <iframe src="resources/large-composited-subframe.html"></iframe> |
| <div class="overlay"></div> |
| </div> |
| |
| <!-- Dump the layer tree output here. --> |
| <pre id="output"></pre> |
| |
| <script> |
| if (window.testRunner) { |
| window.testRunner.dumpAsText(); |
| window.testRunner.waitUntilDone(); |
| window.testRunner.overridePreference("WebKitUsesPageCachePreferenceKey", 1); |
| } |
| |
| function finishTest() { |
| var output = document.getElementById("output"); |
| output.innerText = window.internals.layerTreeAsText(document); |
| |
| if (window.testRunner) |
| window.testRunner.notifyDone(); |
| } |
| |
| window.addEventListener("pageshow", function(event) { |
| alert("pageshow - " + (event.persisted ? "" : "not ") + "from cache"); |
| if (event.persisted) |
| setTimeout(finishTest, 0); |
| }, false); |
| |
| window.addEventListener("pagehide", function(event) { |
| alert("pagehide - " + (event.persisted ? "" : "not ") + "entering cache"); |
| }, false); |
| |
| // Force a back navigation back to this page. |
| window.addEventListener("load", function(event) { |
| setTimeout(function() { |
| window.location.href = "../resources/go-back.html"; |
| }, 0); |
| }, false); |
| </script> |
| |
| </body> |
| </html> |