diff --git a/app/capabilities.js b/app/capabilities.js index 5b746bdc..76a2d8c1 100644 --- a/app/capabilities.js +++ b/app/capabilities.js @@ -75,6 +75,7 @@ async function polyfillStreams() { } export default async function capabilities() { + const serviceWorker = 'serviceWorker' in navigator; let crypto = await checkCrypto(); const nativeStreams = checkStreams(); let polyStreams = false; @@ -91,11 +92,10 @@ export default async function capabilities() { return { account, crypto, + serviceWorker, streamUpload: nativeStreams || polyStreams, streamDownload: - nativeStreams && - 'serviceWorker' in navigator && - browserName() !== 'safari', + nativeStreams && serviceWorker && browserName() !== 'safari', multifile: nativeStreams || polyStreams }; } diff --git a/app/main.js b/app/main.js index c6afa043..3f11594a 100644 --- a/app/main.js +++ b/app/main.js @@ -28,8 +28,9 @@ if (process.env.NODE_ENV === 'production') { (async function start() { const app = routes(choo()); const capa = await capabilities(); - if (capa.streamDownload) { - navigator.serviceWorker.register('/serviceWorker.js'); + if (capa.serviceWorker) { + await navigator.serviceWorker.register('/serviceWorker.js'); + await navigator.serviceWorker.ready; } const translate = await getTranslator(LOCALE);