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