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

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

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

מניפסט

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

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

{
  "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
}

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

{
  "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">

אם לתוסף שמייבאים יש מזהה "aaaaaaaaaaaaaaaaaaaaaaaaaa" , עליך להזין את כתובת ה-URL המלאה של המשאבים במודול המשותף הוא:

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

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

התקנה / הסרה

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

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