<html manifest="/resources/network-simulator.php?path=/appcache/resources/offline-access.manifest">
<!--
Generate this token with the command:
tools/origin_trials/generate_token.py http://127.0.0.1:8000 AppCache --expire-days=2000
-->
<meta http-equiv="origin-trial" content="AnwB3aSh6U8pmYtO/AzzxELSwk8BRJoj77nUnCq6u3N8LMJKlX/ImydQmXn3SgE0a+8RyowLbV835tXQHJMHuAEAAABQeyJvcmlnaW4iOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImZlYXR1cmUiOiAiQXBwQ2FjaGUiLCAiZXhwaXJ5IjogMTc2MTE3NjE5OH0=">
<div id=result></div>
<script>
function log(message)
{
    document.getElementById("result").innerHTML += message + "<br>";
}
applicationCache.onchecking = function() { log("checking"); }
applicationCache.ondownloading = function() { log("downloading") }
applicationCache.onprogress = function() { log("progress") }
applicationCache.onupdateready = function() { log("updateready") }
applicationCache.onobsolete = function() { log("obsolete") }
</script>
<script src="/resources/network-simulator.php?path=/appcache/resources/offline-access.js"></script>
<script>

applicationCache.oncached = function() { log("cached"); test() }
applicationCache.onnoupdate = function() { log("noupdate"); test() }
applicationCache.onerror = function() { log("error"); test() }
</script>
</html>
