Dasar-dasar pekerja layanan ekstensi

Service worker ekstensi diinstal dan diupdate secara berbeda dari service worker web. Halaman ini menjelaskan perbedaan tersebut.

Mendaftarkan pekerja layanan

Untuk mendaftarkan pekerja layanan ekstensi, tentukan di kolom "background" pada file manifest.json. Gunakan kunci "service_worker", yang menentukan satu file JavaScript. Pekerja layanan di halaman web atau aplikasi web mendaftarkan pekerja layanan dengan terlebih dahulu mendeteksi fitur untuk serviceWorker di navigator, lalu memanggil register() di dalam deteksi fitur. Fungsi ini tidak berfungsi untuk ekstensi.

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

Impor skrip

Ada dua metode untuk mengimpor skrip ke pekerja layanan: pernyataan import dan metode importScripts(). Perhatikan bahwa import(), yang sering disebut impor dinamis, tidak didukung.

Untuk menggunakan pernyataan import, tambahkan kolom "type" ke manifes Anda dan tentukan "module". Contoh:

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

Lalu, gunakan import seperti biasa. Perhatikan bahwa pernyataan impor tidak didukung.

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

Gunakan importScripts() seperti yang Anda lakukan di pekerja layanan web.

importScripts('locales.js');

Perbarui

Untuk mengupdate pekerja layanan, publikasikan versi baru ekstensi Anda ke Chrome Web Store. Anda tidak dapat menyiasatinya dengan memuat ekstensi dari server. Karena alasan keamanan, Manifes V3 tidak mendukung kode yang dihosting dari jarak jauh. Pekerja layanan Anda harus menjadi bagian dari paket ekstensi.