Untuk menggunakan sebagian besar fitur dan API ekstensi, Anda harus menyatakan intent ekstensi di kolom izin manifes. Ekstensi dapat meminta kategori izin berikut, yang ditentukan menggunakan kunci manifes masing-masing:
"permissions"
- Berisi item dari daftar string yang dikenal. Perubahan dapat memicu peringatan.
"optional_permissions"
- Disediakan oleh pengguna pada saat runtime, bukan pada waktu penginstalan.
"content_scripts.matches"
- Berisi satu atau beberapa pola pencocokan yang memungkinkan skrip konten dimasukkan ke satu atau beberapa host. Perubahan dapat memicu peringatan.
"host_permissions"
- Berisi satu atau beberapa pola pencocokan yang memberikan akses ke satu atau beberapa host. Perubahan dapat memicu peringatan.
"optional_host_permissions"
- Disediakan oleh pengguna pada saat runtime, bukan pada waktu penginstalan.
Izin membantu membatasi kerusakan jika ekstensi Anda disusupi oleh malware. Beberapa peringatan izin ditampilkan kepada pengguna untuk meminta izin mereka sebelum penginstalan atau saat runtime, seperti yang dijelaskan dalam Izin dengan peringatan.
Pertimbangkan untuk menggunakan izin opsional di mana pun fungsi ekstensi Anda memberikan kontrol informasi kepada pengguna tentang akses ke sumber daya dan data.
Jika API memerlukan izin, dokumentasinya akan menjelaskan cara mendeklarasikannya. Untuk misalnya, lihat Storage API.
Manifes
Berikut adalah contoh bagian izin file manifes:
manifest.json:
{
"name": "Permissions Extension",
...
"permissions": [
"activeTab",
"contextMenus",
"storage"
],
"optional_permissions": [
"topSites",
],
"host_permissions": [
"https://www.developer.chrome.com/*"
],
"optional_host_permissions":[
"https://*/*",
"http://*/*"
],
...
"manifest_version": 3
}
Izin host
Izin host memungkinkan ekstensi berinteraksi dengan pola yang cocok URL. Beberapa Chrome API memerlukan izin host selain izin API-nya sendiri, yang didokumentasikan di setiap halaman referensi. Berikut beberapa contohnya:
- Membuat permintaan
fetch()
dari pekerja layanan ekstensi dan halaman ekstensi. - Baca dan buat kueri untuk properti tab sensitif (url, judul, dan favIconUrl) menggunakan
chrome.tabs
API. - Memasukkan skrip konten secara terprogram.
- Memantau dan mengontrol permintaan jaringan dengan
chrome.webRequest
API. - Akses cookie dengan
chrome.cookies
API. - Mengalihkan dan mengubah header permintaan dan respons menggunakan API
chrome.declarativeNetRequest
.
Izin dengan peringatan
Saat sebuah ekstensi meminta beberapa izin, dan banyak di antaranya yang menampilkan peringatan penginstalan, pengguna akan melihat daftar peringatan, seperti pada contoh berikut:
Pengguna lebih cenderung memercayai ekstensi dengan peringatan terbatas atau saat izin dijelaskan mereka. Pertimbangkan untuk menerapkan izin opsional atau API yang kurang canggih agar tidak mengkhawatirkan peringatan. Untuk mengetahui praktik terbaik terkait peringatan, lihat Panduan peringatan izin. Spesifik, {i>Specific<i} peringatan dicantumkan dengan izin yang berlaku dalam Daftar referensi izin.
Menambahkan atau mengubah pola pencocokan di "host_permissions"
dan "content_scripts.matches"
file manifes juga akan memicu peringatan. Untuk mempelajari lebih lanjut, lihat
Memperbarui izin.
Izinkan akses
Jika ekstensi Anda perlu dijalankan di URL file://
atau beroperasi dalam mode samaran, pengguna harus memberi ekstensi akses di halaman detailnya. Anda dapat menemukan petunjuk untuk membuka halaman detail pada bagian Kelola ekstensi Anda.
Izinkan akses ke URL file dan halaman samaran
- Klik kanan ikon ekstensi di Chrome.
Pilih Kelola Ekstensi.
Scroll ke bawah untuk mengaktifkan akses ke URL file atau mode samaran.
Untuk mendeteksi apakah pengguna telah mengizinkan akses, Anda dapat memanggil extension.isAllowedIncognitoAccess()
atau
extension.isAllowedFileSchemeAccess()
.