У меня есть расширение браузера, которое отлично работает в Chrome. когда я перенес его на firefox, следующий фрагмент кода, который выполняется в фоновом потоке расширений, выдает исключение.
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/firebase-messaging-sw.js',{
updateViaCache: 'none'
})
.then(function(registration) {
console.log('Registration successful, scope is:', registration.scope);
}).catch(function(err) {
console.log('Service worker registration failed, error:', err);
});
}
Ошибка выглядит следующим образом: DOMException: «Операцияinsecure. "
У меня возникла эта проблема в Firefox 70.0.1, и поэтому я считаю, что эти существующие ответы об устаревших настройках срока действия файлов cookie (??): Firefox:Service Worker: SecurityError: DOMException: операция небезопасна
Я пробовал каждую комбинацию изменений в manifest.json, о которой я могу думать, и манифест в настоящее время выглядит так:
"permissions": ["storage", "contextMenus", "tabs", "notifications", "*://localhost/*"],
"content_security_policy": "script-src 'self' '<MY-SHA256>' https://www.gstatic.com https://storage.googleapis.com; object-src 'self'",
"background": {
"page": "background.html",
"persistent": true
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["/assets/js/browser-polyfill.min.js","/load.js"]
}],
"web_accessible_resources" : ["*.html",
"https://sitecontent.loopworks.com/scripts/fa-5-11-2/js/all.js",
"https://www.gstatic.com/firebasejs/6.5.0/firebase.js",
"https://www.gstatic.com/firebasejs/6.5.0/firebase-messaging.js"
]
Это содержимое фоновой страницы:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<script src="/assets/js/firebase.js"></script>
<script src="/assets/js/firebase-messaging.js"></script>
<script src="/assets/js/browser-polyfill.min.js"></script>
<script src="/background.js"></script>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
</body>
</html>
Я абсолютно застрял здесь, поэтому буду очень признателен за любые предложения.