Modul bersama

Modul Bersama adalah kumpulan resource tanpa izin yang dapat dibagikan antar-ekstensi. Penggunaan umum Modul Bersama adalah:

  • Sebagai API. Anda dapat mendistribusikan Modul Bersama yang dapat menyediakan HTML, JS, dan resource lainnya untuk menyediakan API yang dapat diupdate secara terpisah dari ekstensi yang bergantung padanya.
  • Sebagai pengoptimalan download. Modul Bersama berisi resource umum yang digunakan oleh banyak ekstensi. Ekstensi didownload sekali, pertama kali ekstensi dependen diinstal.

Manifes

Modul Bersama digunakan melalui dua kolom manifes: "export" dan "import".

Ekspor

Kolom export menunjukkan bahwa ekstensi adalah Modul Bersama yang mengekspor resource-nya:

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

Impor

Kolom import digunakan oleh ekstensi dan aplikasi untuk mendeklarasikan bahwa ekstensi dan aplikasi tersebut bergantung pada resource dari Modul Bersama tertentu:

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

Mengakses sumber daya

Resource Modul Bersama diakses oleh jalur yang dicadangkan _modules/SHARED_MODULE_ID di root ekstensi yang mengimpor Anda. Misalnya, untuk menyertakan skrip foo.js dari Modul Bersama dengan ID "ccccccccccccccccccccCC, gunakan jalur ini dari root ekstensi Anda:

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

Jika ekstensi impor memiliki ID "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", URL lengkap untuk resource di Modul Bersama adalah:

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

Perlu diketahui bahwa karena resource dari Modul Bersama ditempatkan ke dalam asal ekstensi impor, semua hak istimewa yang diberikan ke ekstensi impor tersedia untuk kode di Modul Bersama. Selain itu, Modul Bersama dapat mengakses resource di ekstensi impor menggunakan jalur absolut.

Instal / uninstal

Modul Bersama otomatis diinstal dari Chrome Web Store saat diperlukan oleh ekstensi dependen dan otomatis di-uninstal saat ekstensi terakhir yang merujuknya di-uninstal. Untuk mengupload ekstensi yang menggunakan Modul Bersama, Modul Bersama harus dipublikasikan di Chrome Web Store dan ekstensi tidak boleh dibatasi dari penggunaan Modul Bersama oleh daftar yang diizinkan.

Selama pengembangan, Anda perlu menginstal Modul Bersama yang digunakan ekstensi Anda secara manual. Penginstalan otomatis tidak terjadi untuk ekstensi yang di-sideload atau dimuat sebagai ekstensi yang tidak dipaketkan. Untuk Modul Bersama yang diinstal secara lokal dan tidak dipaketkan, Anda harus menggunakan kolom key untuk memastikan Modul Bersama menggunakan ID yang benar.