-
Notifications
You must be signed in to change notification settings - Fork 985
Closed
Description
[REQUIRED] Describe your environment
- Operating System version: Mac OS X 10.15.7
- Browser version: Chrome 98.0.4758
- Firebase SDK version: 9.6.1
- Firebase Product: performance
Actually, this error occurs on more than one specific operating system and browser version. Here are browser and OS versions we can see in Sentry.
Browsers:
- Chrome 98.0.4758
- Chrome 99.0.4844
- Chrome 96.0.4664
- Chrome 105.0.0
- Firefox 95.0
- Chrome 103.0.0
- Chrome 106.0.0
- Chrome 96.0.4606
OS:
- Mac OS X 10.15.7
- Windows 10
- Mac OS X 10.14.6
- Mac OS X 11.6
- Mac OS X 12.2.1
- Mac OS X 12.6
- Mac OS X 10.15
- Mac OS X 10.14.3
- Mac OS X 10.14.4
- Mac OS X 10.15.6
[REQUIRED] Describe the problem
We got Cannot read property 'controller' of undefined errors in Sentry recently.

The stack trace shows it comes from here.
firebase-js-sdk/packages/performance/src/utils/attributes_utils.ts
Lines 60 to 71 in cdada6c
| export function getServiceWorkerStatus(): ServiceWorkerStatus { | |
| const navigator = Api.getInstance().navigator; | |
| if ('serviceWorker' in navigator) { | |
| if (navigator.serviceWorker.controller) { | |
| return ServiceWorkerStatus.CONTROLLED; | |
| } else { | |
| return ServiceWorkerStatus.UNCONTROLLED; | |
| } | |
| } else { | |
| return ServiceWorkerStatus.UNSUPPORTED; | |
| } | |
| } |
Although it looks already defensive enough, it doesn't catch the case that
'serviceWorker' in navigator but navigator.serviceWorker === undefined.
Steps to reproduce:
N/A
Relevant Code:
firebase-js-sdk/packages/performance/src/utils/attributes_utils.ts
Lines 60 to 71 in cdada6c
| export function getServiceWorkerStatus(): ServiceWorkerStatus { | |
| const navigator = Api.getInstance().navigator; | |
| if ('serviceWorker' in navigator) { | |
| if (navigator.serviceWorker.controller) { | |
| return ServiceWorkerStatus.CONTROLLED; | |
| } else { | |
| return ServiceWorkerStatus.UNCONTROLLED; | |
| } | |
| } else { | |
| return ServiceWorkerStatus.UNSUPPORTED; | |
| } | |
| } |
kenrick95