| <html manifest="resources/subframes-3.manifest"> |
| <body> |
| <p>Test that a subframe with manifest that matches top frame manifest works correctly.</p> |
| <p>In this case, the subframe resource is NOT listed in manifest explicitly.</p> |
| <p>Should say SUCCESS:</p> |
| <div id=result></div> |
| |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| function log(message) |
| { |
| document.getElementById("result").innerHTML += message + "<br>"; |
| } |
| |
| function debug(message) |
| { |
| // If running manually in the browser, print the sequence of events. |
| if (!window.testRunner) |
| log(message); |
| } |
| |
| var receivedExpectedMessage = false; |
| var receivedCheckingEventsCounter = 0; |
| var receivedNoupdateEventsCounter = 0; |
| |
| function checkDone() |
| { |
| if (receivedExpectedMessage && receivedCheckingEventsCounter == 2 && receivedNoupdateEventsCounter == 2) { |
| log("SUCCESS"); |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| } |
| } |
| |
| function test() |
| { |
| applicationCache.onnoupdate = null; |
| applicationCache.oncached = null; |
| |
| // When a new main resource is associated with the cache, an update should be started. |
| applicationCache.onchecking = function() { debug("checking"); receivedCheckingEventsCounter++; checkDone() } |
| applicationCache.onnoupdate = function() { debug("noupdate"); receivedNoupdateEventsCounter++; checkDone(); } |
| |
| var ifr = document.createElement("iframe"); |
| ifr.setAttribute("src", "resources/subframe-3.html"); |
| document.body.appendChild(ifr); |
| } |
| |
| function test2() |
| { |
| window.removeEventListener("message", test2, false); |
| window.addEventListener("message", test3, false); |
| |
| // Add an identical frame, to test that loading its resources from appcache works. |
| var ifr = document.createElement("iframe"); |
| ifr.setAttribute("src", "resources/subframe-3.html"); |
| document.body.appendChild(ifr); |
| } |
| |
| function test3() |
| { |
| debug("message"); |
| receivedExpectedMessage = true; |
| checkDone(); |
| } |
| |
| applicationCache.onnoupdate = function() { test() } |
| applicationCache.oncached = function() { test() } |
| |
| applicationCache.onupdateready = function() { log("FAIL: received unexpected updateready event") } |
| applicationCache.onerror = function() { log("FAIL: received unexpected error event") } |
| |
| window.addEventListener("message", test2, false); |
| |
| </script> |
| </body> |
| </html> |