الوحدات المشتركة

الوحدات المشتركة هي مجموعات موارد غير مسموح بها ويمكن مشاركتها بين الإضافات. في ما يلي الاستخدامات الشائعة للوحدات المشتركة:

  • كواجهة برمجة تطبيقات. يمكنك توزيع وحدة مشتركة يمكنها توفير HTML وJS وموارد أخرى لتوفير واجهة برمجة تطبيقات يمكن تحديثها بشكل مستقل عن الإضافات التي تعتمد عليها.
  • كتحسين للتنزيل. تحتوي الوحدة المشتركة على موارد شائعة تستخدمها العديد من الإضافات. ويتم تنزيلها مرة واحدة، وهي المرّة الأولى التي يتم فيها تثبيت إضافة تابعة.

البيان

يتم استخدام الوحدات المشتركة من خلال حقلين بيان: "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 في جذر الإضافة المستورَدة. على سبيل المثال، لتضمين النص البرمجي foo.js من وحدة مشتركة برقم التعريف "cccccccccccccccccccccccc"، يمكنك استخدام هذا المسار من جذر الإضافة:

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

إذا كانت إضافة الاستيراد تحتوي على المعرف "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"، فإن عنوان URL الكامل للموارد في الوحدة المشتركة هو:

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

لاحظ أنه نظرًا لأنه يتم تضمين الموارد من الوحدات المشتركة في أصل إضافة الاستيراد، فإن جميع الامتيازات الممنوحة للإضافة المستورَدة تكون متاحة للترميز في الوحدات المشتركة. كما يمكن للوحدة المشتركة الوصول إلى الموارد في الإضافة المستورَدة باستخدام المسارات المطلقة.

تثبيت / إلغاء تثبيت

يتم تثبيت الوحدة المشتركة تلقائيًا من سوق Chrome الإلكتروني عند الحاجة بواسطة إضافة تابعة وتتم إزالتها تلقائيًا عند إلغاء تثبيت آخر إضافة تشير إليها. لتحميل إضافة تستخدم "وحدة مشتركة"، يجب نشر "الوحدة المشتركة" في "سوق Chrome الإلكتروني"، ويجب ألا يتم حظر استخدام "الوحدة المشتركة" من خلال القائمة المسموح بها.

أثناء التطوير، سيكون عليك تثبيت أي "وحدات مشتركة" تستخدمها إضافتك يدويًا. لا تحدث عمليات التثبيت التلقائية للإضافات التي يتم تحميلها جانبيًا أو تحميلها كإضافات مُدمَجة. بالنسبة إلى الوحدات المشتركة المثبَّتة محليًا والتي تم فك ضغطها، يجب استخدام حقل المفتاح للتأكّد من أنّ الوحدات المشتركة تستخدم المعرّفات الصحيحة.