Skip to content

Error in console when trying to communicate with service worker in Firefox with persistant cookies disabled #17136

@Findus23

Description

@Findus23

As reported on the forum: https://forum.matomo.org/t/firefox-84-promiseerror-securityerror-the-operation-is-insecure/40299/6?u=lukas

This can be reproduced by creating a fresh firefox profile (84.0.2 in my case), and opening forum.matomo.org.

Failed to get service worker registration(s): Storage access is restricted in this context due to user settings or private browsing mode. _application-581e2539c09b2579657fb9679aaeeb510ddf1d491cdaf95d59f45e52559d6843.js:71615:34

Failed to register/update a ServiceWorker for scope ‘https://forum.matomo.org/’: Storage access is restricted in this context due to user settings or private browsing mode. _application-581e2539c09b2579657fb9679aaeeb510ddf1d491cdaf95d59f45e52559d6843.js:71633:34

Failed to register Service Worker: SecurityError: The operation is insecure. _application-581e2539c09b2579657fb9679aaeeb510ddf1d491cdaf95d59f45e52559d6843.js:71635:20

Uncaught (in promise) DOMException: The operation is insecure. _application-581e2539c09b2579657fb9679aaeeb510ddf1d491cdaf95d59f45e52559d6843.js:1

​It seems like even if no service worker (for offline tracking) is set up, just trying to communicate with it fails.

matomo/js/piwik.js

Lines 6969 to 6977 in cc25c84

// initialize the Matomo singleton
addEventListener(windowAlias, 'beforeunload', beforeUnloadHandler, false);
addEventListener(windowAlias, 'online', function () {
if (isDefined(navigatorAlias.serviceWorker) && isDefined(navigatorAlias.serviceWorker.ready)) {
navigatorAlias.serviceWorker.ready.then(function(swRegistration) {
return swRegistration.sync.register('matomoSync');
});
}
}, false);

I guess the solution is either to make sure Matomo doesn't try to communicate with it when offline tracking is not set up (maybe even add an option to the regular tracking code if one wants to use offline tracking) or catch the promise, ignore it and document it in the offline tracking docs.

Metadata

Metadata

Assignees

Labels

BugFor errors / faults / flaws / inconsistencies etc.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions