Modul bersama

Modul Bersama adalah kumpulan resource tanpa izin yang dapat digunakan bersama oleh ekstensi. Penggunaan umum Modul Bersama adalah:

  • Sebagai API. Anda dapat mendistribusikan Modul Bersama yang dapat menyediakan HTML, JS, dan sumber daya 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 ini didownload sekali, saat 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 impor Anda. Misalnya, untuk menyertakan skrip foo.js dari Modul Bersama dengan ID "cccccccccccccccccccc", gunakan jalur ini dari akar ekstensi:

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

Jika ekstensi yang mengimpor memiliki ID "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", URL lengkap untuk referensi di Modul Bersama adalah:

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

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

Instal / uninstal

Modul Bersama diinstal secara otomatis dari Chrome Web Store saat diperlukan oleh ekstensi yang bergantung dan di-uninstal secara otomatis ketika ekstensi terakhir yang mereferensikannya di-uninstal. Untuk mengupload ekstensi yang menggunakan Modul Bersama, Modul Bersama harus dipublikasikan di Chrome Web Store dan ekstensi tidak boleh dibatasi agar tidak dapat menggunakan Modul Bersama daftar yang disetujui.

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