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.