Задать вопрос
@MikUrrey

Chrome extension worker то работает, то нет?

Всем привет!
Расширение должно реагировать на определенные XHR-запросы, но почему-то вдруг может отвалиться, и возобновляет работу, если запустить консоль отладки воркера. Пока запущена консоль, работает без сбоев.
Если консоль выключить, расширение может опять отвалиться.
выжимка из манифеста:

"manifest_version": 3,
  "background": {
    "service_worker": "background.js"
  },
  "permissions": [
    "storage", 
    "scripting", 
    "webRequest",
    "webRequestBlocking",
    "tabs"
  ],
  "host_permissions": ["https://secret"],
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["content-script.js"]
    }
  ],

background.js (следит за запросами и пинает content-script.js)
chrome.webRequest.onCompleted.addListener(function (details) {
    console.log({details})
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
      console.log({tabs})
      if (tabs[0]) {
        chrome.tabs.sendMessage(tabs[0].id, {details}, function(response) {
          console.log({response});
        });
      }
    });
}, {urls: ['https://secret/?*']});

content-script.js (если случился запрос, должен вывести в консоли объект, но делает это не всегда)
chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        console.log(request);
        sendResponse({});
    }
);
  • Вопрос задан
  • 214 просмотров
Подписаться 3 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 1
dollar
@dollar
Делай добро и бросай его в воду.
Сделай background.js таким:
try {
  importScripts("bg.js");
} catch (e) {
  console.error(e);
}

А вот bg.js - уже обычный js-файл, перенеси туда все фоновые обработчики, и будет как и на 2-й версии манифеста.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы