<html manifest="fail-on-update.php"> <body> <div id=result></div> <script> function log(message) { document.getElementById("result").innerHTML += message + "<br>"; } function onObsolete() { log("obsolete") log("status=" + applicationCache.status + " (expected 5)"); applicationCache.onobsolete = function() { log("obsolete") } applicationCache.onupdateready = function() { log("updateready") } applicationCache.onnoupdate = function() { log("noupdate") } applicationCache.onnoupdate = function() { log("error") } // We still have a cache, so loading should fail try { var req = new XMLHttpRequest; req.open("GET", "empty.txt", false); req.send(null); alert("FAIL: XMLHttpRequest for an uncached resource didn't raise an exception"); } catch (ex) { } log("There should be no messages below."); } function onError() { if (applicationCache.status != applicationCache.UNCACHED && applicationCache.status != applicationCache.OBSOLETE) { timeoutId = setTimeout(onNoManifest, 100); return; } log("error"); applicationCache.onobsolete = function() { log("obsolete") } applicationCache.onupdateready = function() { log("updateready") } applicationCache.onnoupdate = function() { log("noupdate") } applicationCache.onnoupdate = function() { log("error") } // Ensure that we are not associated with a cache. try { var req = new XMLHttpRequest; req.open("GET", "empty.txt", false); req.send(null); } catch (ex) { alert("FAIL: XMLHttpRequest raised an exception, " + ex); } log("There should be no messages below."); parent.postMessage("frameDone - timeout", "*"); } applicationCache.onupdateready = function() { log("updateready"); alert("Unexpected updateready event in frame") } applicationCache.onnoupdate = function() { log("noupdate") } applicationCache.oncached = function() { log("cached"); alert("Unexpected cached event in frame") } applicationCache.onobsolete = onObsolete; applicationCache.onerror = onError; </script> </body> </html>