Dasar-dasar pekerja layanan ekstensi

Pekerja layanan ekstensi diinstal dan diupdate secara berbeda dari pekerja layanan web. Halaman ini menjelaskan perbedaan tersebut.

Mendaftarkan pekerja layanan

Untuk mendaftarkan pekerja layanan ekstensi, tentukan di kolom "background" file manifest.json. Gunakan kunci "service_worker", yang menentukan satu file JavaScript. Pekerja layanan di halaman web atau aplikasi web mendaftarkan pekerja layanan dengan mendeteksi fitur terlebih dahulu untuk serviceWorker di navigator, lalu memanggil register() di dalam deteksi fitur. Opsi 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(). Perlu diketahui bahwa import(), yang sering disebut sebagai impor dinamis, tidak didukung.

Untuk menggunakan pernyataan import, tambahkan kolom "type" ke manifes 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 pada pekerja layanan web.

importScripts('locales.js');

Update

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