diff --git a/js/src/views/Settings/Notifications.vue b/js/src/views/Settings/Notifications.vue index 8a4962fee..805e8bc85 100644 --- a/js/src/views/Settings/Notifications.vue +++ b/js/src/views/Settings/Notifications.vue @@ -686,10 +686,15 @@ export default class Notifications extends Vue { } async checkCanShowWebPush(): Promise { - if (!window.isSecureContext || !("serviceWorker" in navigator)) + try { + if (!window.isSecureContext || !("serviceWorker" in navigator)) + return Promise.resolve(false); + const registration = await navigator.serviceWorker.getRegistration(); + return registration !== undefined; + } catch (e) { + console.error(e); return Promise.resolve(false); - const registration = await navigator.serviceWorker.getRegistration(); - return registration !== undefined; + } } async created(): Promise { @@ -713,9 +718,14 @@ export default class Notifications extends Vue { } private async isSubscribed(): Promise { - if (!("serviceWorker" in navigator)) return Promise.resolve(false); - const registration = await navigator.serviceWorker.getRegistration(); - return (await registration?.pushManager?.getSubscription()) != null; + try { + if (!("serviceWorker" in navigator)) return Promise.resolve(false); + const registration = await navigator.serviceWorker.getRegistration(); + return (await registration?.pushManager?.getSubscription()) != null; + } catch (e) { + console.error(e); + return Promise.resolve(false); + } } private async deleteFeedToken(token: string): Promise {