electron/spec/fixtures/pages/service-worker/service-worker-badge.js

34 lines
1.1 KiB
JavaScript

self.addEventListener('fetch', async function (event) {
const requestUrl = new URL(event.request.url);
let responseTxt;
if (requestUrl.pathname === '/echo' &&
event.request.headers.has('X-Mock-Response')) {
if (requestUrl.search === '?setBadge') {
if (navigator.setAppBadge()) {
try {
await navigator.setAppBadge(42);
responseTxt = 'SUCCESS setting app badge';
await navigator.clearAppBadge();
} catch (ex) {
responseTxt = 'ERROR setting app badge ' + ex;
}
} else {
responseTxt = 'ERROR navigator.setAppBadge is not available in ServiceWorker!';
}
} else if (requestUrl.search === '?clearBadge') {
if (navigator.clearAppBadge()) {
try {
await navigator.clearAppBadge();
responseTxt = 'SUCCESS clearing app badge';
} catch (ex) {
responseTxt = 'ERROR clearing app badge ' + ex;
}
} else {
responseTxt = 'ERROR navigator.clearAppBadge is not available in ServiceWorker!';
}
}
const mockResponse = new Response(responseTxt);
event.respondWith(mockResponse);
}
});