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

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

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

מניפסט

במודולים משותפים נעשה שימוש דרך שני שדות מניפסט: ייצוא וייבוא.

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

{
  "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' ממודול משותף עם המזהה 'cccccccccccccccccccccccccc' שניתן&

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

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

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

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

התקנה / הסרה

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

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