Index: LayoutTests/fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html |
diff --git a/LayoutTests/fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html b/LayoutTests/fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html |
index eb9e3ee58859b5f54920a6e4173c06cecced14f5..0a533a812417a7e0766ea5f2d5cb58b9c30d646d 100644 |
--- a/LayoutTests/fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html |
+++ b/LayoutTests/fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html |
@@ -33,10 +33,8 @@ function runTest() |
runFirstStageOfTest(); |
} |
-onpopstate = function() |
+function continueTest(state) |
{ |
- alert("State popped - " + event.state + " (type " + typeof event.state + ")"); |
- |
// FIXME: Once the popstate and hashchange events fire asynchronously, we |
// can eliminate this setTimeout hack. The hashchange event currently runs |
// synchronously following the popstate event, but the calls to |
@@ -44,7 +42,6 @@ onpopstate = function() |
// our hashchange handler, which expects to see the "old" value of the |
// location. |
- var state = event.state; |
setTimeout(function() { |
if (state == "FirstEntry") { |
history.replaceState("FirstEntryWillLaterBeReactivated", null, "#FirstEntryWillLaterBeReactivated"); |
@@ -57,7 +54,23 @@ onpopstate = function() |
}, 0); |
} |
-onhashchange = function(event) |
+window.onpopstate = function statePopped() |
+{ |
+ var state = event.state; |
+ alert("State popped - " + state + " (type " + typeof state + ")"); |
+ continueTest(state); |
+} |
+ |
+window.onpageshow = function pageShown() |
+{ |
+ if (sessionStorage.stage == 2) { |
+ var state = history.state; |
+ alert("Page shown - " + state + " (type " + typeof state + ")"); |
+ continueTest(state); |
+ } |
+} |
+ |
+window.onhashchange = function hashChanged(event) |
{ |
alert("hashChanged - Last path component of location is " + lastPathComponent(event.newURL)); |
if (hashOf(event.newURL) == "#FirstEntryWillLaterBeReactivated") { |
@@ -75,7 +88,7 @@ This test: |
-Builds up a list of state object entries with fragment URLs. |
-Navigates through them to verify that the popstate and hashchanged events are fired. |
-Navigates away to a new document, with the old document being destroyed. |
--Navigates back to the state object entries and verifies the popstate event is fired even on the new documents. |
+-Navigates back to the state object entries and verifies the pageshow or popstate events are fired on the new documents. |
</pre> |
</body> |
</html> |