From 084fa1f234cbc14912d05382aabba4bf3aa92fa1 Mon Sep 17 00:00:00 2001 From: Kainoa Kanter Date: Sun, 9 Mar 2025 17:36:05 -0700 Subject: [PATCH 1/3] fix: allow graceful failure if serviceWorker is unavailable --- packages/messaging/src/helpers/register.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/messaging/src/helpers/register.ts b/packages/messaging/src/helpers/register.ts index ef28cd2edad..8c22701995e 100644 --- a/packages/messaging/src/helpers/register.ts +++ b/packages/messaging/src/helpers/register.ts @@ -40,6 +40,11 @@ import { name, version } from '../../package.json'; const WindowMessagingFactory: InstanceFactory<'messaging'> = ( container: ComponentContainer ) => { + if (!navigator.serviceWorker) { + console.warn("Service workers are not supported in this environment."); + return; + } + const messaging = new MessagingService( container.getProvider('app').getImmediate(), container.getProvider('installations-internal').getImmediate(), From e8e7051a8c37121ad34d286f284cf6b6e3d70f60 Mon Sep 17 00:00:00 2001 From: Kainoa Kanter Date: Sun, 9 Mar 2025 17:41:54 -0700 Subject: [PATCH 2/3] chore: add changeset --- .changeset/huge-chefs-sip.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/huge-chefs-sip.md diff --git a/.changeset/huge-chefs-sip.md b/.changeset/huge-chefs-sip.md new file mode 100644 index 00000000000..e707f4b3027 --- /dev/null +++ b/.changeset/huge-chefs-sip.md @@ -0,0 +1,5 @@ +--- +'@firebase/messaging': minor +--- + +Allows @firebase/messaging to fail gracefully if the service worker is not found for whatever reason (i.e. Capacitor app (my use case), iOS PWA, etc) instead of crashing the entire application. From 06c08682baa5e79995a0a12577b4ef2454b9fe6d Mon Sep 17 00:00:00 2001 From: Kainoa Kanter Date: Fri, 21 Mar 2025 15:38:52 -0700 Subject: [PATCH 3/3] update changeset --- .changeset/huge-chefs-sip.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/huge-chefs-sip.md b/.changeset/huge-chefs-sip.md index e707f4b3027..e4b29ed78dc 100644 --- a/.changeset/huge-chefs-sip.md +++ b/.changeset/huge-chefs-sip.md @@ -2,4 +2,4 @@ '@firebase/messaging': minor --- -Allows @firebase/messaging to fail gracefully if the service worker is not found for whatever reason (i.e. Capacitor app (my use case), iOS PWA, etc) instead of crashing the entire application. +Allows @firebase/messaging to fail gracefully if the service worker is not found for whatever reason (i.e. Capacitor app, iOS Safari on some devices, etc) instead of crashing the entire application.