Podstawy skryptu service worker rozszerzenia

Skrypty service worker rozszerzeń są instalowane i aktualizowane inaczej niż instancje usług internetowych. Na tej stronie opisujemy te różnice.

Zarejestruj skrypty service worker

Aby zarejestrować skrypt service worker rozszerzenia, podaj go w polu "background" w pliku manifest.json. Użyj klucza "service_worker", który określa pojedynczy plik JavaScript. Skrypty service worker na stronach lub w aplikacjach internetowych rejestrują te mechanizmy, najpierw wykrywając funkcje w trybie serviceWorker w navigator, a następnie wywołując register() w ramach wykrywania funkcji. Nie działa w przypadku rozszerzeń.

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

Importuj skrypty

Istnieją 2 metody importowania skryptów do skryptu service worker: instrukcja import i metoda importScripts(). Pamiętaj, że narzędzie import(), nazywane często importowaniem dynamicznym, nie jest obsługiwane.

Aby użyć instrukcji import, dodaj do pliku manifestu pole "type" i wpisz w nim wartość "module". Na przykład:

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

Następnie używaj import w zwykły sposób. Pamiętaj, że asercje importu nie są obsługiwane.

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

Użyj narzędzia importScripts() tak samo jak w skrypcie usług internetowych.

importScripts('locales.js');

Aktualizuj

Aby zaktualizować skrypt service worker, opublikuj nową wersję rozszerzenia w Chrome Web Store. Nie możesz obejść tego problemu, ładując rozszerzenie z serwera. Ze względów bezpieczeństwa platforma Manifest V3 nie obsługuje kodu hostowanego zdalnie. Skrypt service worker musi być częścią pakietu rozszerzeń.