• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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>
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-4.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-4.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