Paylaşılan modüller

Paylaşılan Modüller, uzantılar arasında paylaşılabilen izinsiz kaynak koleksiyonlarıdır. Paylaşılan Modüllerin yaygın kullanım alanları şunlardır:

  • API olarak. Kendisine bağlı uzantılardan bağımsız olarak güncellenebilen bir API sağlamak için HTML, JS ve diğer kaynakları sağlayabilen bir Paylaşılan Modül dağıtabilirsiniz.
  • İndirme optimizasyonu olarak. Paylaşılan Modül, birçok uzantı tarafından kullanılan ortak kaynakları içerir. Bağımlı bir uzantı ilk kez yüklendiğinde bir kez indirilir.

Manifest

Paylaşılan Modüller iki manifest alanı üzerinden kullanılır: "export" ve "import".

Dışa aktar

export alanı, uzantının kaynaklarını dışa aktaran bir Paylaşılan Modül olduğunu gösterir:

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

İçe aktar

import alanı, uzantılar ve uygulamalar tarafından, belirli Paylaşılan Modüllerdeki kaynaklara bağlı olduklarını belirtmek amacıyla kullanılır:

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

Kaynaklara erişme

Paylaşılan Modül kaynaklarına, içe aktarma uzantınızın kökündeki ayrılmış bir _modules/SHARED_MODULE_ID yolu tarafından erişiliyor. Örneğin, "cccccccccccccccccccccc" kimliğine sahip bir Paylaşılan Modüldeki foo.js komut dosyasını eklemek için uzantınızın kökünden şu yolu kullanın:

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

İçe aktarılan uzantının "aaaaaaaaaaaaaaaaaaaaaaaaaa" kimliği varsa Paylaşılan Modül'deki kaynakların tam URL'si şu şekilde olur:

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

Paylaşılan Modüller'deki kaynaklar, içe aktarma uzantısının kaynağına yerleştirildiğinden, içe aktarma uzantısına verilen tüm ayrıcalıkların Paylaşılan Modüller'deki kod için kullanılabileceğini unutmayın. Ayrıca Paylaşılan Modül, içe aktarma uzantısındaki kaynaklara mutlak yolları kullanarak erişebilir.

Yükleme / kaldırma

Bağımlı bir uzantı için gerektiğinde Chrome Web Mağazası'ndan Paylaşılan Modül otomatik olarak yüklenir ve buna başvuruda bulunan son uzantı kaldırıldığında otomatik olarak kaldırılır. Paylaşılan Modül kullanan bir uzantı yüklemek için Paylaşılan Modül'ün Chrome Web Mağazası'nda yayınlanması ve uzantının, izin verilenler listesi tarafından Paylaşılan Modül'ü kullanması kısıtlanmamalıdır.

Geliştirme sırasında, uzantınızın kullandığı tüm Paylaşılan Modülleri manuel olarak yüklemeniz gerekir. Yan veya paketlenmemiş uzantı olarak yüklenen uzantılar için otomatik yüklemeler gerçekleşmez. Yerel olarak yüklenmiş, paketlenmemiş Paylaşılan Modüllerde, Paylaşılan Modüllerin doğru kimlikleri kullandığından emin olmak için key alanını kullanmanız gerekir.