מודולים משותפים

מודולים משותפים הם אוספים של משאבים ללא הרשאות שניתן לשתף בין תוספים. שימושים נפוצים במודולים משותפים:

  • כממשק API. תוכלו להפיץ מודול משותף שיכול לספק HTML, JS ומשאבים אחרים כדי לספק API שאפשר לעדכן בנפרד מהתוספים שתלויים בו.
  • כאופטימיזציה של הורדות. המודול המשותף מכיל משאבים משותפים שתוספים רבים משתמשים בהם. ההורדה מתבצעת פעם אחת, בפעם הראשונה שתוסף תלוי מותקן.

מניפסט

במודולים משותפים נעשה שימוש דרך שני שדות מניפסט: "export" ו-"import".

ייצוא

השדה ייצוא מציין שתוסף הוא מודול משותף שמייצא את המשאבים שלו:

{
  "version": "1.0",
  "name": "My Shared Module",
  "export": {
    // Optional list of extension IDs explicitly allowed to
    // import this Shared Module's resources.  If no allowlist
    // is given, all extensions are allowed to import it.
    "allowlist": [
      "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
      "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
    ]
  }
  // Note: no permissions are allowed in Shared Modules
}

ייבוא

תוספים ואפליקציות משתמשים בשדה import כדי להצהיר שהם תלויים במשאבים ממודולים משותפים מסוימים:

{
  "version": "1.0",
  "name": "My Importing Extension",
  ...
  "import": [
    {"id": "cccccccccccccccccccccccccccccccc"},
    {"id": "dddddddddddddddddddddddddddddddd"
     "minimum_version": "0.5" // optional
    },
  ]
}

גישה למשאבים

הגישה למשאבי מודול משותף מתבצעת דרך נתיב שמור _modules/SHARED_MODULE_ID ברמה הבסיסית (root) של תוסף הייבוא. לדוגמה, כדי לכלול את הסקריפט foo.js ממודול משותף עם המזהה 'cccccccccccccccccccccccccccc

<script src="_modules/cccccccccccccccccccccccccccccccc/foo.js">

אם לתוסף הייבוא יש את המזהה "aaaaaaaaaaaaaaaaaaaaaaaaaaaa", אז כתובת האתר המלאה למשאבים במודול המשותף היא:

chrome-extension://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/_modules/cccccccccccccccccccccccccccccccc/

שימו לב: מאחר שמשאבים ממודולים משותפים מופיעים כשכבת-על במקור של תוסף הייבוא, כל ההרשאות שניתנות לתוסף הייבוא זמינות לקוד במודולים משותפים. בנוסף, המודול המשותף יכול לגשת למשאבים בתוסף הייבוא על ידי שימוש בנתיבים מוחלטים.

התקנה / הסרה

מודול משותף מותקן אוטומטית מחנות האינטרנט של Chrome במקרה של תוסף תלוי, ומסיר את ההתקנה באופן אוטומטי כאשר התוסף האחרון שמפנה אותו מוסר. כדי להעלות תוסף שמשתמש במודול משותף, חובה לפרסם את המודול המשותף בחנות האינטרנט של Chrome, ואין להגביל את השימוש במודול המשותף באמצעות רשימת ההיתרים שלו.

במהלך הפיתוח, יהיה עליך להתקין באופן ידני את המודולים המשותפים שבהם התוסף שלך משתמש. התקנות אוטומטיות לא חלות על תוספים שנטענים בצד או נטענים כתוספים לא ארוזים. במודולים משותפים שהותקנו באופן מקומי ולא ארוזים, צריך להשתמש בשדה key כדי לוודא שהמודולים המשותפים ישתמשו במזהים הנכונים.