1 <html manifest="resources/subframes-4.manifest"> 2 <body> 3 <p>Test that a subframe with manifest that matches top frame manifest works correctly.</p> 4 <p>In this case, the subframe resource is listed in manifest explicitly.</p> 5 <p>Should say SUCCESS:</p> 6 <div id=result></div> 7 8 <script> 9 if (window.layoutTestController) { 10 layoutTestController.dumpAsText(); 11 layoutTestController.waitUntilDone(); 12 } 13 14 function log(message) 15 { 16 document.getElementById("result").innerHTML += message + "<br>"; 17 } 18 19 function debug(message) 20 { 21 // If running manually in the browser, print the sequence of events. 22 if (!window.layoutTestController) 23 log(message); 24 } 25 26 var receivedExpectedMessage = false; 27 var receivedCheckingEventsCounter = 0; 28 var receivedNoupdateEventsCounter = 0; 29 30 function checkDone() 31 { 32 if (receivedExpectedMessage && receivedCheckingEventsCounter == 2 && receivedNoupdateEventsCounter == 2) { 33 log("SUCCESS"); 34 if (window.layoutTestController) 35 layoutTestController.notifyDone(); 36 } 37 } 38 39 function test() 40 { 41 applicationCache.onnoupdate = null; 42 applicationCache.oncached = null; 43 44 // When a new main resource is associated with the cache, an update should be started. 45 applicationCache.onchecking = function() { debug("checking"); receivedCheckingEventsCounter++; checkDone() } 46 applicationCache.onnoupdate = function() { debug("noupdate"); receivedNoupdateEventsCounter++; checkDone(); } 47 48 var ifr = document.createElement("iframe"); 49 ifr.setAttribute("src", "resources/subframe-4.html"); 50 document.body.appendChild(ifr); 51 } 52 53 function test2() 54 { 55 window.removeEventListener("message", test2, false); 56 window.addEventListener("message", test3, false); 57 58 // Add an identical frame, to test that loading its resources from appcache works. 59 var ifr = document.createElement("iframe"); 60 ifr.setAttribute("src", "resources/subframe-4.html"); 61 document.body.appendChild(ifr); 62 } 63 64 function test3() 65 { 66 debug("message"); 67 receivedExpectedMessage = true; 68 checkDone(); 69 } 70 71 applicationCache.onnoupdate = function() { test() } 72 applicationCache.oncached = function() { test() } 73 74 applicationCache.onupdateready = function() { log("FAIL: received unexpected updateready event") } 75 applicationCache.onerror = function() { log("FAIL: received unexpected error event") } 76 77 window.addEventListener("message", test2, false); 78 79 </script> 80 </body> 81 </html> 82