| export function permissionTest(origin, sender) { |
| function ping(message) { |
| if (!globalThis.WorkerGlobalScope) { |
| window.top.postMessage(message, origin); |
| } else { |
| globalThis.postMessage(message); |
| } |
| n.close(); |
| } |
| |
| const n = new Notification(sender); |
| const permission = Notification.permission; |
| n.onshow = () => ping({ sender, permission, shown: true }); |
| n.onerror = () => ping({ sender, permission, shown: false }); |
| |
| if (!globalThis.WorkerGlobalScope) { |
| Notification.requestPermission().then(permission => ping({ sender: `${sender}Request`, permission })); |
| |
| const workerUrl = new URL(`./permission-worker.js`, import.meta.url); |
| workerUrl.searchParams.set("sender", `${sender}Worker`); |
| const worker = new Worker(workerUrl, { type: "module" }); |
| worker.onmessage = ev => ping(ev.data, origin); |
| } |
| } |