OLD | NEW |
1 <html> | 1 <html> |
2 <script> | 2 <script> |
3 | 3 |
4 // Navigation steps: | 4 // Navigation steps: |
5 // 1- loads this page | 5 // 1- loads this page |
6 // 2- loads this page + hash (doesn't call onload) | 6 // 2- loads this page + hash (doesn't call onload) |
7 // 3- loads a data URL that just navigates back | 7 // 3- loads a data URL that just navigates back |
8 // 4- loads this page + hash (calls onload, triggering completion) | 8 // 4- loads this page + hash (calls onload, triggering completion) |
9 | 9 |
10 function navigateToHash(field) { | 10 function navigateToHash(field) { |
11 location.hash = 'hash'; | 11 location.hash = 'hash'; |
12 field.value = 'test'; | 12 field.value = 'test'; |
13 } | 13 } |
14 | 14 |
15 function navigateAwayAndBack() { | 15 function navigateAwayAndBack() { |
16 // Assigning to location does not create a history entry, so | 16 // Assigning to location does not create a history entry, so |
17 // instead we simulate a link click. | 17 // instead we simulate a link click. |
18 var evt = document.createEvent("MouseEvents"); | 18 var evt = document.createEvent("MouseEvents"); |
19 evt.initMouseEvent("click", true, true, window, | 19 evt.initMouseEvent("click", true, true, window, |
20 0, 0, 0, 0, 0, false, false, false, false, 0, null); | 20 0, 0, 0, 0, 0, false, false, false, false, 0, null); |
21 document.getElementById('anchor').dispatchEvent(evt); | 21 document.getElementById('anchor').dispatchEvent(evt); |
22 } | 22 } |
23 | 23 |
24 function runTestStep() { | 24 function runTestStep() { |
25 var hash = location.hash; | 25 var hash = location.hash; |
26 var field = document.getElementById('field'); | 26 var field = document.getElementById('field'); |
27 | 27 |
28 if (hash == "") { | 28 if (hash == "") { |
29 if (window.testRunner) { | 29 if (window.testRunner) { |
30 testRunner.dumpAsText(); | 30 testRunner.dumpAsText(); |
31 testRunner.waitUntilDone(); | 31 testRunner.waitUntilDone(); |
32 } | 32 } |
33 // Location changes need to happen outside the onload handler to generate hi
story entries. | 33 // Location changes need to happen outside the onload handler to generate hi
story entries. |
34 setTimeout(function() { | 34 setTimeout(function() { |
35 navigateToHash(field); | 35 navigateToHash(field); |
36 navigateAwayAndBack(); | 36 navigateAwayAndBack(); |
37 }, 0); | 37 }, 0); |
38 } else { | 38 } else { |
39 document.body.innerHTML = (field.value == '') ? 'FAIL' : 'PASS'; | 39 document.body.innerHTML = (field.value == '') ? 'FAIL' : 'PASS'; |
40 if (window.testRunner) | 40 if (window.testRunner) |
41 testRunner.notifyDone(); | 41 testRunner.notifyDone(); |
42 } | 42 } |
43 } | 43 } |
44 | 44 |
45 </script> | 45 </script> |
46 <body onload='runTestStep()' onunload='/*suppress page cache*/'> | 46 <body onload='runTestStep()' onunload='/*suppress page cache*/'> |
47 <input id='field'></input> | 47 <input id='field'></input> |
48 <a id='anchor' href='data:text/html,<body onload="history.back()"></body>'>go
away and come back</a> | 48 <a id='anchor' href='resources/back-on-load.html'>go away and come back</a> |
49 </body> | 49 </body> |
50 </html> | 50 </html> |
OLD | NEW |