עקרונות בסיסיים של קובץ שירות (service worker) של תוסף

קובצי שירות (service worker) של תוספים מותקנים ומעודכנים באופן שונה מ-Service Workers באינטרנט. בדף הזה מוסברים ההבדלים האלה.

רישום קובצי שירות (service worker)

כדי לרשום קובץ שירות (service worker) של תוסף, יש לציין אותו בשדה "background" של הקובץ manifest.json. יש להשתמש במפתח "service_worker", שמציין קובץ JavaScript אחד. קובצי שירות (service worker) בדפי אינטרנט או באפליקציות אינטרנט רושמים קובצי שירות (service worker) על ידי זיהוי התכונות עבור serviceWorker ב-navigator ולאחר מכן קריאה ל-register() בתוך זיהוי התכונות. זה לא עובד עם תוספים.

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

ייבוא סקריפטים

יש שתי שיטות לייבא סקריפטים ל-Service Worker: ההצהרה import והשיטה importScripts(). לתשומת ליבכם: אין תמיכה ב-import(), שנקרא בדרך כלל ייבוא דינמי.

כדי להשתמש בהצהרה import, יש להוסיף את השדה "type" למניפסט ולציין את "module". לדוגמה:

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

לאחר מכן משתמשים כרגיל בimport. שימו לב שאין תמיכה בטענות נכוֹנוּת (assertions) של הייבוא.

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

אופן השימוש ב-importScripts() זהה לשימוש ב-Web service worker.

importScripts('locales.js');

עדכון

כדי לעדכן את קובץ השירות (service worker), פרסם גרסה חדשה של התוסף בחנות האינטרנט של Chrome. לא ניתן לעקוף את הבעיה על ידי טעינת התוסף שלך משרת. מטעמי אבטחה, המניפסט V3 לא תומך בקוד באירוח מרוחק. קובץ השירות (service worker) חייב להיות חלק מחבילת התוסף.