add_task(async function denySubscribe() {
try {
await registration.pushManager.subscribe();
ok(false, "subscribe() should fail because no permission for push");
} catch (error) {
ok(error instanceof DOMException, "Wrong exception type");
is(error.name, "NotAllowedError", "Wrong exception name");
}
});
add_task(async function denySubscribeInWorker() {
// If permission is revoked, `getSubscription()` should return `null`, and
// `subscribe()` should reject immediately. Calling these from the worker
// should not deadlock the main thread (see bug 1228723). var errorInfo = await sendRequestToWorker({
type: "denySubscribe",
});
ok(errorInfo.isDOMException, "Wrong exception type");
is(errorInfo.name, "NotAllowedError", "Wrong exception name");
});
add_task(async function getEndpoint() { var pushSubscription = await registration.pushManager.getSubscription();
is(pushSubscription, null, "getSubscription() should return null because no permission for push");
});
add_task(async function checkPermissionState() { var permissionManager = SpecialPowers.Ci.nsIPermissionManager; var tests = [{
action: permissionManager.ALLOW_ACTION,
state: "granted",
}, {
action: permissionManager.DENY_ACTION,
state: "denied",
}, {
action: permissionManager.PROMPT_ACTION,
state: "prompt",
}, {
action: permissionManager.UNKNOWN_ACTION,
state: "prompt",
}];
for (var test of tests) {
await setPushPermission(test.action); var state = await registration.pushManager.permissionState();
is(state, test.state, JSON.stringify(test));
try {
await SpecialPowers.pushPrefEnv({ set: [
["dom.push.testing.ignorePermission", true]] });
state = await registration.pushManager.permissionState();
is(state, "granted", `Should ignore ${
test.action} if the override pref is set`);
} finally {
await SpecialPowers.flushPrefEnv();
}
}
});
add_task(async function unregister() { var result = await registration.unregister();
ok(result, "Unregister should return true.");
});
</script>
</body>
</html>
Messung V0.5
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet)
¤
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.