| <!-- webkit-test-runner [ UsesBackForwardCache=true ] --> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| var cachedApplicationCache = window.applicationCache; |
| var cachedConsole = window.console; |
| var cachedCrypto = window.crypto; |
| var cachedHistory = window.history; |
| var cachedLocalStorage = window.localStorage; |
| var cachedLocation = window.location; |
| var cachedLocationbar = window.locationbar; |
| var cachedMedia = window.styleMedia; |
| var cachedMenubar = window.menubar; |
| var cachedNavigator = window.navigator; |
| var cachedPersonalbar = window.personalbar; |
| var cachedScreen = window.screen; |
| var cachedScrollbars = window.scrollbars; |
| var cachedSelection = window.getSelection(); |
| var cachedSessionStorage = window.sessionStorage; |
| var cachedStatusbar = window.statusbar; |
| var cachedToolbar = window.toolbar; |
| |
| function logMessage(msg) |
| { |
| document.getElementById("outputDiv").innerText += msg + " \n"; |
| } |
| |
| function logErrorMessage(msg) |
| { |
| document.getElementById("errorDiv").innerText += msg + " \n"; |
| } |
| |
| window.onpageshow = function(evt) { |
| if (!evt.persisted) { |
| window.setTimeout("window.location.href = 'resources/empty-document-goes-back.html'", 0); |
| return; |
| } |
| |
| // First alert all of the objects to make sure we get a valid toString()-ification |
| // instead of "undefined", "null", or "Object" |
| logMessage(window.applicationCache); |
| logMessage(window.console); |
| logMessage(window.crypto); |
| logMessage(window.history); |
| logMessage(window.localStorage); |
| logMessage(window.location != null && window.location != undefined); |
| logMessage(window.locationbar); |
| logMessage(window.styleMedia); |
| logMessage(window.menubar); |
| logMessage(window.navigator); |
| logMessage(window.personalbar); |
| logMessage(window.screen); |
| logMessage(window.scrollbars); |
| logMessage(window.getSelection() != null && window.getSelection() != undefined); |
| logMessage(window.sessionStorage); |
| logMessage(window.statusbar); |
| logMessage(window.toolbar); |
| |
| // Then make sure the window properties match the cached references from the initial page load |
| if (cachedApplicationCache != window.applicationCache) |
| logErrorMessage("applicationCache"); |
| if (cachedConsole != window.console) |
| logErrorMessage("console"); |
| if (cachedCrypto != window.crypto) |
| logErrorMessage("crypto"); |
| if (cachedHistory != window.history) |
| logErrorMessage("history"); |
| if (cachedLocalStorage != window.localStorage) |
| logErrorMessage("localStorage"); |
| if (cachedLocation != window.location) |
| logErrorMessage("location"); |
| if (cachedLocationbar != window.locationbar) |
| logErrorMessage("locationbar"); |
| if (cachedMedia != window.styleMedia) |
| logErrorMessage("styleMedia"); |
| if (cachedMenubar != window.menubar) |
| logErrorMessage("menubar"); |
| if (cachedNavigator != window.navigator) |
| logErrorMessage("navigator"); |
| if (cachedPersonalbar != window.personalbar) |
| logErrorMessage("personalbar"); |
| if (cachedScreen != window.screen) |
| logErrorMessage("screen"); |
| if (cachedScrollbars != window.scrollbars) |
| logErrorMessage("scrollbars"); |
| if (cachedSelection != window.getSelection()) |
| logErrorMessage("getSelection"); |
| if (cachedSessionStorage != window.sessionStorage) |
| logErrorMessage("sessionStorage"); |
| if (cachedStatusbar != window.statusbar) |
| logErrorMessage("statusbar"); |
| if (cachedToolbar != window.toolbar) |
| logErrorMessage("toolbar"); |
| |
| if (document.getElementById("errorDiv").innerText == "") |
| document.getElementById("errorDiv").innerText = "All tests passed."; |
| |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| |
| </script> |
| <body> |
| This test makes sure that various properties on the window object are correctly reconnected after restoring a page from the page cache.<br> |
| <div id="outputDiv"></div><br> |
| <div id="errorDiv"></div> |
| </body> |