Не удается зарегистрировать работника службы из фонового JavaScript в надстройке Firefox - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть расширение браузера, которое отлично работает в 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>

Я абсолютно застрял здесь, поэтому буду очень признателен за любые предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...