OLD | NEW |
| 1 <!DOCTYPE HTML> |
1 <html manifest="resources/fail-on-update.php"> | 2 <html manifest="resources/fail-on-update.php"> |
2 <script> | 3 <script> |
3 if (window.testRunner) { | 4 if (window.testRunner) { |
4 testRunner.dumpAsText(); | 5 testRunner.dumpAsText(); |
5 testRunner.waitUntilDone(); | 6 testRunner.waitUntilDone(); |
6 } | 7 } |
7 | 8 |
8 function setManifestDeleted(state) | 9 function setManifestDeleted(state, callback) |
9 { | 10 { |
10 var req = new XMLHttpRequest; | 11 var req = new XMLHttpRequest; |
11 req.open("GET", "resources/fail-on-update.php?command=" + (state ? "delete"
: "reset"), false); | 12 req.onreadystatechange = function() { |
| 13 if (req.readyState == 4) |
| 14 callback(); |
| 15 } |
| 16 req.open("GET", "resources/fail-on-update.php?command=" + (state ? "delete"
: "reset")); |
12 req.send(null); | 17 req.send(null); |
13 } | 18 } |
14 | 19 |
15 function test() | 20 function test() |
16 { | 21 { |
17 clearTimeout(timeoutId); | 22 clearTimeout(timeoutId); |
18 | 23 |
19 setManifestDeleted(true); | 24 setManifestDeleted(true, afterDelete); |
20 applicationCache.update(); | 25 |
21 window.location = 'data:text/html,<p>SUCCESS: No crash.</p>' + | 26 function afterDelete() |
22 '<script>' + | 27 { |
23 'if (window.testRunner) testRunner.notifyDone();' + | 28 applicationCache.update(); |
24 '</scri' + 'pt>'; | 29 window.location = 'data:text/html,<p>SUCCESS: No crash.</p>' + |
| 30 '<script>' + |
| 31 'if (window.testRunner) testRunner.notifyDone();' + |
| 32 '</scri' + 'pt>'; |
| 33 } |
25 } | 34 } |
26 | 35 |
27 function resetManifest() | 36 function resetManifest() |
28 { | 37 { |
29 if (applicationCache.status != applicationCache.UNCACHED && applicationCache
.status != applicationCache.OBSOLETE) { | 38 if (applicationCache.status != applicationCache.UNCACHED && applicationCache
.status != applicationCache.OBSOLETE) { |
30 timeoutId = setTimeout(resetManifest, 100); | 39 timeoutId = setTimeout(resetManifest, 100); |
31 return; | 40 return; |
32 } | 41 } |
33 | 42 |
34 setManifestDeleted(false); | 43 setManifestDeleted(false, function() { |
35 location.reload(); | 44 location.reload(); |
| 45 }); |
36 } | 46 } |
37 | 47 |
38 applicationCache.addEventListener('noupdate', function() { setTimeout(test, 0) }
, false); | 48 applicationCache.addEventListener('noupdate', function() { setTimeout(test, 0) }
, false); |
39 applicationCache.addEventListener('cached', function() { setTimeout(test, 0) },
false); | 49 applicationCache.addEventListener('cached', function() { setTimeout(test, 0) },
false); |
40 | 50 |
41 // If the manifest script happened to be in a wrong state, reset it. | 51 // If the manifest script happened to be in a wrong state, reset it. |
42 var timeoutId = setTimeout(resetManifest, 100); | 52 var timeoutId = setTimeout(resetManifest, 100); |
43 | 53 |
44 </script> | 54 </script> |
45 <p>Test for a particular incorrect assertion failure.</p> | 55 <p>Test for a particular incorrect assertion failure.</p> |
46 | 56 |
47 </html> | 57 </html> |
OLD | NEW |