Nozioni di base sui service worker delle estensioni

I service worker delle estensioni vengono installati e aggiornati in modo diverso rispetto ai worker di servizio web. Questa pagina spiega queste differenze.

Registra service worker

Per registrare un service worker dell'estensione, specificalo nel campo "background" del file manifest.json. Utilizza la chiave "service_worker", che specifica un singolo file JavaScript. I service worker nelle pagine web o nelle app web registrano i service worker rilevando prima le funzionalità per serviceWorker in navigator e poi chiamando register() all'interno del rilevamento delle funzionalità. Questa operazione non funziona per le estensioni.

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

Importa script

Esistono due metodi per importare gli script in un service worker: l'istruzione import e il metodo importScripts(). Tieni presente che import(), spesso chiamato importazione dinamica, non è supportato.

Per utilizzare l'istruzione import, aggiungi il campo "type" al file manifest e specifica "module". Ad esempio:

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

Quindi, usa import come faresti normalmente. Tieni presente che le asserzioni di importazione non sono supportate.

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

Utilizza importScripts() come faresti in un service worker.

importScripts('locales.js');

Aggiorna

Per aggiornare il service worker, pubblica una nuova versione della tua estensione sul Chrome Web Store. Non puoi aggirare il problema caricando l'estensione da un server. Per motivi di sicurezza, Manifest V3 non supporta il codice ospitato in remoto. Il service worker deve essere incluso nel pacchetto dell'estensione.