blob: 71bd468ba3a300313d4c830e03159bfbb0d69ade (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
<html manifest="resources/subframes-2.manifest">
<body>
<p>Test that a subframe without manifest gets picked by a relevant application cache that
contains its resource.</p>
<p>Should say SUCCESS:</p>
<div id=result></div>
<script>
if (window.layoutTestController) {
layoutTestController.dumpAsText();
layoutTestController.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.layoutTestController)
log(message);
}
var receivedExpectedMessage = false;
var receivedCheckingEvent = false;
var receivedNoupdateEvent = false;
function checkDone()
{
if (receivedExpectedMessage && receivedCheckingEvent && receivedNoupdateEvent) {
log("SUCCESS");
if (window.layoutTestController)
layoutTestController.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"); receivedCheckingEvent = true; checkDone(); }
applicationCache.onnoupdate = function() { debug("noupdate"); receivedNoupdateEvent = true; checkDone(); }
var ifr = document.createElement("iframe");
ifr.setAttribute("src", "resources/subframe-2.html");
document.body.appendChild(ifr);
}
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", function() { debug("message"); receivedExpectedMessage = true; checkDone(); }, false);
</script>
</body>
</html>
|