Untuk menggunakan sebagian besar API ekstensi dan fitur, Anda harus mendeklarasikan maksud 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 diketahui. Perubahan dapat memicu peringatan.
"optional_permissions"- Diberikan oleh pengguna saat runtime, bukan saat waktu penginstalan.
"content_scripts.matches"- Berisi satu atau beberapa pola kecocokan yang memungkinkan skrip konten disuntikkan ke satu atau beberapa host. Perubahan dapat memicu peringatan.
"host_permissions"- Berisi satu atau beberapa pola kecocokan yang memberikan akses ke satu atau beberapa host. Perubahan dapat memicu peringatan.
"optional_host_permissions"- Diberikan oleh pengguna saat runtime, bukan saat waktu penginstalan.
Izin membantu membatasi kerusakan jika ekstensi Anda disusupi oleh malware. Beberapa peringatan izin ditampilkan kepada pengguna untuk mendapatkan 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 memungkinkan, untuk memberi pengguna kontrol yang tepat atas akses ke resource dan data.
Jika API memerlukan izin, dokumentasinya akan menjelaskan cara mendeklarasikannya. Sebagai contoh, lihat Storage API.
Manifes
Berikut adalah contoh bagian izin dari file manifest:
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 pencocokan URL. Beberapa Chrome API memerlukan izin host selain izin API-nya sendiri, yang didokumentasikan di setiap halaman referensi. Berikut beberapa contohnya:
- Lakukan permintaan
fetch()dari pekerja layanan ekstensi dan halaman ekstensi. - Membaca dan membuat kueri properti tab sensitif (URL, judul, dan favIconUrl) menggunakan
chrome.tabsAPI. - Menyuntikkan skrip konten secara terprogram.
- Pantau dan kontrol permintaan jaringan dengan API
chrome.webRequest. - Akses cookie dengan
chrome.cookiesAPI. - Mengarahkan ulang dan mengubah header permintaan dan respons menggunakan API
chrome.declarativeNetRequest.
Izin dengan peringatan
Jika ekstensi meminta beberapa izin, dan banyak di antaranya menampilkan peringatan saat penginstalan, pengguna akan melihat daftar peringatan, seperti dalam contoh berikut:

Pengguna cenderung memercayai ekstensi dengan peringatan terbatas atau saat izin dijelaskan kepada mereka. Pertimbangkan untuk menerapkan izin opsional atau API yang kurang canggih untuk menghindari peringatan yang mengkhawatirkan. Untuk mengetahui praktik terbaik terkait peringatan, lihat Panduan peringatan izin. Peringatan tertentu tercantum bersama izin yang berlaku di daftar referensi Izin.
Menambahkan atau mengubah pola kecocokan di kolom "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 berjalan di URL file:// atau beroperasi dalam mode samaran, pengguna harus memberikan akses ekstensi di halaman detailnya. Anda dapat menemukan petunjuk untuk membuka halaman detail di bagian Mengelola ekstensi.
Mengizinkan akses ke URL file dan halaman samaran
- Klik kanan ikon ekstensi di Chrome.
Pilih Kelola Ekstensi.
Menu ekstensi Scroll ke bawah untuk mengaktifkan akses ke URL file atau mode samaran.
Akses diaktifkan ke URL file dan mode samaran.
Untuk mendeteksi apakah pengguna telah mengizinkan akses, Anda dapat memanggil extension.isAllowedIncognitoAccess() atau
extension.isAllowedFileSchemeAccess().