1<html manifest="resources/subframes-3.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 NOT listed in manifest explicitly.</p> 5<p>Should say SUCCESS:</p> 6<div id=result></div> 7 8<script> 9if (window.layoutTestController) { 10 layoutTestController.dumpAsText(); 11 layoutTestController.waitUntilDone(); 12} 13 14function log(message) 15{ 16 document.getElementById("result").innerHTML += message + "<br>"; 17} 18 19function debug(message) 20{ 21 // If running manually in the browser, print the sequence of events. 22 if (!window.layoutTestController) 23 log(message); 24} 25 26var receivedExpectedMessage = false; 27var receivedCheckingEventsCounter = 0; 28var receivedNoupdateEventsCounter = 0; 29 30function checkDone() 31{ 32 if (receivedExpectedMessage && receivedCheckingEventsCounter == 2 && receivedNoupdateEventsCounter == 2) { 33 log("SUCCESS"); 34 if (window.layoutTestController) 35 layoutTestController.notifyDone(); 36 } 37} 38 39function 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-3.html"); 50 document.body.appendChild(ifr); 51} 52 53function 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-3.html"); 61 document.body.appendChild(ifr); 62} 63 64function test3() 65{ 66 debug("message"); 67 receivedExpectedMessage = true; 68 checkDone(); 69} 70 71applicationCache.onnoupdate = function() { test() } 72applicationCache.oncached = function() { test() } 73 74applicationCache.onupdateready = function() { log("FAIL: received unexpected updateready event") } 75applicationCache.onerror = function() { log("FAIL: received unexpected error event") } 76 77window.addEventListener("message", test2, false); 78 79</script> 80</body> 81</html> 82