Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(392)

Side by Side Diff: LayoutTests/fast/loader/stateobjects/document-destroyed-navigate-back.html

Issue 680273004: Never fire popstate event when navigating between documents (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | LayoutTests/fast/loader/stateobjects/document-destroyed-navigate-back-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <html> 1 <html>
2 <head> 2 <head>
3 <script> 3 <script>
4 4
5 if (window.testRunner) { 5 if (window.testRunner) {
6 if (!sessionStorage.stage) 6 if (!sessionStorage.stage)
7 testRunner.clearBackForwardList(); 7 testRunner.clearBackForwardList();
8 testRunner.dumpAsText(); 8 testRunner.dumpAsText();
9 testRunner.waitUntilDone(); 9 testRunner.waitUntilDone();
10 } 10 }
11 11
12 function lastPathComponent() 12 function lastPathComponent()
13 { 13 {
14 return window.location.href.split('/').pop(); 14 return window.location.href.split('/').pop();
15 } 15 }
16 16
17 function runFirstStageOfTest() 17 function runFirstStageOfTest()
18 { 18 {
19 history.replaceState("FirstEntry", null, "?FirstEntry"); 19 history.replaceState("FirstEntry", null, "?FirstEntry");
20 history.pushState("SecondEntry", null, "?SecondEntry"); 20 history.pushState("SecondEntry", null, "?SecondEntry");
21 history.back(); 21 history.back();
22 } 22 }
23 23
24 function runSecondStageOfTest()
25 {
26 alert("Last path component of location is " + lastPathComponent());
27 }
28
29 function runThirdStageOfTest()
30 {
31 alert("Final stage of test loaded");
32 }
33
34 function runTest() 24 function runTest()
35 { 25 {
36 if (!sessionStorage.stage) { 26 if (!sessionStorage.stage) {
37 // Location changes need to happen outside the onload handler to generat e history entries. 27 // Location changes need to happen outside the onload handler to generat e history entries.
38 setTimeout(runFirstStageOfTest, 0); 28 setTimeout(runFirstStageOfTest, 0);
39 } else if (sessionStorage.stage == 2) 29 } else if (sessionStorage.stage == 2)
40 runSecondStageOfTest(); 30 alert("Last path component of location is " + lastPathComponent());
41 else if (sessionStorage.stage == 3)
42 runThirdStageOfTest();
43 } 31 }
44 32
45 function statePopped() 33 function continueTest(state)
46 { 34 {
47 alert("State popped - " + event.state + " (type " + typeof event.state + ")" ); 35 if (state == "FirstEntry") {
48 if (event.state == "FirstEntry") {
49 history.replaceState("FirstEntryWillLaterBeReactivated", null, "?FirstEn tryWillLaterBeReactivated"); 36 history.replaceState("FirstEntryWillLaterBeReactivated", null, "?FirstEn tryWillLaterBeReactivated");
50 history.forward(); 37 history.forward();
51 } else if (event.state == "SecondEntry") { 38 } else if (state == "SecondEntry") {
52 history.replaceState("SecondEntryWillLaterBeReactivated", null, "?Second EntryWillLaterBeReactivated"); 39 history.replaceState("SecondEntryWillLaterBeReactivated", null, "?Second EntryWillLaterBeReactivated");
53 window.location = "resources/navigate-back.html"; 40 window.location = "resources/navigate-back.html";
54 } else if (event.state == "SecondEntryWillLaterBeReactivated") 41 } else if (state == "SecondEntryWillLaterBeReactivated")
55 history.back(); 42 history.back();
56 else if (event.state == "FirstEntryWillLaterBeReactivated") { 43 else if (state == "FirstEntryWillLaterBeReactivated") {
57 alert("Test complete"); 44 alert("Test complete");
58 sessionStorage.clear(); 45 sessionStorage.clear();
59 if (window.testRunner) 46 if (window.testRunner)
60 testRunner.notifyDone(); 47 testRunner.notifyDone();
61 } 48 }
62 } 49 }
63 50
51 window.onpopstate = function statePopped()
52 {
53 var state = event.state;
54 alert("State popped - " + state + " (type " + typeof state + ")");
55 continueTest(state);
56 }
57
58 window.onpageshow = function pageShown()
59 {
60 if (sessionStorage.stage == 2) {
61 var state = history.state;
62 alert("Page shown - " + state + " (type " + typeof state + ")");
63 continueTest(state);
64 }
65 }
66
64 </script> 67 </script>
65 <body onload="runTest();" onpopstate="statePopped();" onunload="/* disable page cache */"> 68 <body onload="runTest();" onunload="/* disable page cache */">
66 <pre> 69 <pre>
67 This test: 70 This test:
68 -Builds up a list of state object entries with fragment URLs. 71 -Builds up a list of state object entries with fragment URLs.
69 -Navigates through them to verify that the popstate event is fired. 72 -Navigates through them to verify that the popstate event is fired.
70 -Navigates away to a new document, with the old document being destroyed. 73 -Navigates away to a new document, with the old document being destroyed.
71 -Navigates back to the state object entries and verifies the popstate event is f ired even on the new documents. 74 -Navigates back to the state object entries and verifies the pageshow or popstat e events are fired on the new documents.
72 </pre><br> 75 </pre><br>
73 <pre id="logger"></pre> 76 <pre id="logger"></pre>
74 </body> 77 </body>
75 </html> 78 </html>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/fast/loader/stateobjects/document-destroyed-navigate-back-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698