// This service worker script should be used by the // protocol-handler-unregister.https.html test to detect unregistered URL // schemes. self.addEventListener('message', async eventInfo => { let success = false; let message = null; try { const {clientUrlMatch, navigationUrl} = eventInfo.data; const client = (await clients.matchAll()).find( client => client.url === clientUrlMatch); if (client) { try { await client.navigate(navigationUrl); success = true; } catch (navigateException) { message = `navigate failure: ${navigateException.name}`; } } else { message = `no client found matching ${clientUrlMatch}`; } } catch (otherException) { message = `other failure: ${otherException.name}`; } eventInfo.source.postMessage({success, message}); });