| <html> |
| <body> |
| Test pageshow/pagehide event behavior when navigating away from a page with frames, putting the page in the page cache, then back to it. |
| <pre id="log"></pre> |
| <iframe src="resources/pageshow-pagehide-subframe-cachable.html"></iframe> |
| </body> |
| <script> |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| testRunner.overridePreference("WebKitUsesPageCachePreferenceKey", 1); |
| } |
| |
| function log(message) |
| { |
| // Logging to the console instead of the "log" DIV in the DOM because |
| // otherwise we trigger the assert mentioned at http://webkit.org/b/43152 |
| // (since we log during pagehide) |
| console.log(message); |
| } |
| |
| log("***Top level frame being parsed for the initial page load***"); |
| |
| window.onload = function(evt) { |
| log("Main frame window.onload"); |
| } |
| |
| window.onpageshow = function(evt) { |
| log("Main frame window.onpageshow" + ", target = " + evt.target + ", persisted = " + evt.persisted); |
| if (evt.persisted) { |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } else { |
| log("***Navigating top-level frame to a page that will immediately navigate back to this one***"); |
| // Location changes need to happen outside the onload handler to generate history entries. |
| setTimeout(function() {window.location.href = "data:text/html,<script>history.back();</scr" + "ipt>";}, 0); |
| } |
| } |
| |
| window.onpagehide = function(evt) { |
| log("Main frame window.onpagehide" + ", target = " + evt.target + ", persisted = " + evt.persisted); |
| } |
| |
| </script> |
| </html> |