Modul bersama

Modul Bersama adalah kumpulan resource tanpa izin yang dapat dibagikan antara ekstensi dan aplikasi lain. Penggunaan umum Modul Bersama adalah:

  • Sebagai API. Anda dapat mendistribusikan Modul Bersama yang dapat menyediakan HTML, JS, dan sumber lainnya untuk menyediakan API yang dapat diupdate secara terpisah dari ekstensi yang bergantung padanya. Hal ini dapat berguna untuk runtime dan mesin game, karena aplikasi sering kali merupakan payload data yang lebih kecil yang berjalan pada kode Modul Bersama.
  • Sebagai pengoptimalan download. Modul Bersama berisi resource umum yang digunakan oleh banyak ekstensi. Ekstensi didownload sekali, saat ekstensi dependen pertama kali diinstal.

Manifes

Modul Bersama digunakan melalui dua kolom manifes: ekspor dan impor.

Kolom ekspor 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
}

Kolom import digunakan oleh ekstensi dan aplikasi untuk mendeklarasikan bahwa keduanya 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 _modules/SHARED_MODULE_ID yang dicadangkan di root ekstensi impor Anda. Misalnya, untuk menyertakan skrip 'foo.js' dari Modul Bersama dengan ID "cccccccccccccccccccccccccc", gunakan jalur ini dari root ekstensi:

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

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

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

Perhatikan bahwa karena resource dari Modul Bersama ditempatkan ke asal ekstensi pengimpor, semua hak istimewa yang diberikan ke ekstensi pengimporan 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 yang 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 penggunaan Modul Bersama oleh daftar yang diizinkan.

Selama pengembangan, Anda harus 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 dan diekstrak secara lokal, Anda harus menggunakan kolom key untuk memastikan Modul Bersama menggunakan ID yang benar.