function unregister() {
return registration.unregister().then(function(result) {
ok(result, "Unregister should return true.");
}, function(e) {
dump("Unregistering the SW failed with " + e + "\n");
});
}
function testOpaqueIntercept(swr) { var p = new Promise(function(res, rej) { var ready = false; var scriptLoaded = false;
window.onmessage = function(e) {
if (e.data === "READY") {
ok(!ready, "ready message should only be received once");
ok(!scriptLoaded, "ready message should be received before script loaded");
if (ready) {
res();
return;
}
ready = true; iframe.contentWindow.postMessage("REFRESH", "*");
} else if (e.data === "SCRIPT_LOADED") {
ok(ready, "script loaded should be received after ready");
ok(!scriptLoaded, "script loaded message should be received only once");
scriptLoaded = true;
res();
}
}
});
var content = document.getElementById("content");
ok(content, "Parent exists.");
// Our service worker waits for us to finish installing. If it didn't do
// this, then loading our frame would race with it becoming active,
// possibly intercepting the first load of the iframe. This guarantees
// that our iframe will load first directly from the network. Note that
// refresher.html explicitly waits for the service worker to transition to
// active.
registration.installing.postMessage("ready");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.