Основы работы с работниками службы расширения,Основы работы с работниками службы расширения

Рабочие службы расширений устанавливаются и обновляются иначе, чем рабочие веб-службы. На этой странице объясняются эти различия.

Регистрация сервисных работников

Чтобы зарегистрировать работника службы расширений, укажите его в поле "background" файла manifest.json . Используйте ключ "service_worker" , который указывает один файл JavaScript. Сервисные работники на веб-страницах или в веб-приложениях регистрируют сервисных работников, сначала обнаруживая функции для serviceWorker в navigator , а затем вызывая register() внутри обнаружения функций. Это не работает для расширений.

{
  "name": "Awesome Test Extension",
  ...
  "background": {
    "service_worker": "service-worker.js"
  },
  ...
}

Импортировать скрипты

Существует два метода импорта сценариев в сервис-воркер: оператор import и метод importScripts() . Обратите внимание, что import() , часто называемый динамическим импортом, не поддерживается.

Чтобы использовать оператор import , добавьте поле "type" в свой манифест и укажите "module" . Например:

  "background": {
    "service_worker": "service-worker.js",
    "type": "module"
  }

Затем используйте import , как обычно. Обратите внимание, что утверждения импорта не поддерживаются.

import { tldLocales } from './locales.js';

Используйте importScripts() так же, как и в рабочем веб-сервисе.

importScripts('locales.js');

Обновлять

Чтобы обновить сервис-воркера, опубликуйте новую версию вашего расширения в Интернет-магазине Chrome. Вы не можете обойти это, загрузив расширение с сервера. По соображениям безопасности Manifest V3 не поддерживает удаленно размещенный код. Ваш сервисный работник должен быть частью пакета расширения.