Modul Bersama adalah kumpulan resource tanpa izin yang dapat digunakan bersama oleh ekstensi dan aplikasi. Penggunaan umum Modul Bersama adalah:
- Sebagai API. Anda dapat mendistribusikan Modul Bersama yang dapat menyediakan HTML, JS, dan sumber lainnya ke menyediakan API yang dapat diupdate secara terpisah dari ekstensi yang bergantung padanya. Dapat berupa berguna untuk runtime dan game engine, di mana aplikasi sering kali merupakan payload data yang lebih kecil dari kode Modul Bersama.
- 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: ekspor dan impor.
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
}
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 dengan menggunakan absolut.
Instal / uninstal
Modul Bersama diinstal secara otomatis dari Chrome Web Store saat diperlukan oleh , dan secara otomatis di-uninstal 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.