function unregister() {
return registration.unregister().then(function(result) {
ok(result, "Unregister should return true.");
});
}
function testClaim() {
ok(registration.installing, "Worker should be in installing state");
navigator.serviceWorker.oncontrollerchange = function() {
ok(false, "Claim should not succeed when the worker is not active.");
}
var p = new Promise(function(res, rej) { var worker = registration.installing;
worker.onstatechange = function(e) {
if (worker.state === 'installed') {
is(worker, registration.waiting, "Worker should be in waiting state");
} else if (worker.state === 'activated') {
// The worker will become active only if claim will reject inside the
// install handler.
is(worker, registration.active, "Claim should reject if the worker is not active");
ok(navigator.serviceWorker.controller === null, "Client is not controlled.");
e.target.onstatechange = null;
res();
}
}
});
return p;
}
function runTest() {
register()
.then(testClaim)
.then(unregister)
.catch(function(e) {
ok(false, "Some test failed with error " + e);
}).then(SimpleTest.finish);
}
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.