summaryrefslogtreecommitdiffstats
path: root/test/wpt/tests/service-workers/service-worker/postMessage-client-worker.js
blob: 64d944d2b5466a466214ba5be94bab42c07a364e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
async function doTest(e)
{
    if (e.resultingClientId) {
        const promise = new Promise(async resolve => {
            let counter = 0;
            const client = await self.clients.get(e.resultingClientId);
            if (client)
                client.postMessage(counter++);
            if (e.request.url.includes("repeatMessage")) {
                setInterval(() => {
                    if (client)
                        client.postMessage(counter++);
                }, 100);
            }
            setTimeout(() => {
                resolve(fetch(e.request));
            }, 1000);
        });
        e.respondWith(promise);
    }
}

self.addEventListener("fetch", e => e.waitUntil(doTest(e)));