From a24ee01b37df6151cc6623e6224f9bd70e5849f6 Mon Sep 17 00:00:00 2001 From: or-else Date: Sat, 17 Jul 2021 10:28:35 -0700 Subject: [PATCH] remove crash in Safari, #80 --- src/views/tinode-web.jsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/views/tinode-web.jsx b/src/views/tinode-web.jsx index 1e460200..ee4dbce5 100644 --- a/src/views/tinode-web.jsx +++ b/src/views/tinode-web.jsx @@ -216,9 +216,15 @@ class TinodeWeb extends React.Component { window.addEventListener('online', (e) => { this.handleOnline(true); }); window.addEventListener('offline', (e) => { this.handleOnline(false); }); window.addEventListener('hashchange', this.handleHashRoute); + // Process background notifications from the service worker. - const serviceWorkerChannel = new BroadcastChannel('tinode-sw'); - serviceWorkerChannel.addEventListener('message', this.handlePushMessage); + if (typeof BroadcastChannel == 'function') { + const serviceWorkerChannel = new BroadcastChannel('tinode-sw'); + serviceWorkerChannel.addEventListener('message', this.handlePushMessage); + } else { + // Safari is broken by design. + console.warn('Your browser does not support BroadcastChannel. Some features will not be available'); + } // Window/tab visible or invisible for pausing timers. document.addEventListener('visibilitychange', this.handleVisibilityEvent);