Setiap ekstensi harus memiliki file manifest.json
di direktori root-nya yang mencantumkan informasi penting tentang struktur dan perilaku ekstensi tersebut.
Halaman ini menjelaskan struktur manifes ekstensi dan fitur yang dapat
disertakan.
Contoh
Contoh manifes berikut menunjukkan struktur manifes dasar dan beberapa fitur yang umum digunakan sebagai titik awal untuk membuat manifes Anda sendiri:
Manifes minimal
{
"manifest_version": 3,
"name": "Minimal Manifest",
"version": "1.0.0",
"description": "A basic example extension with only required keys",
"icons": {
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
}
Mendaftarkan skrip konten
{
"manifest_version": 3,
"name": "Run script automatically",
"description": "Runs a script on www.example.com automatically when user installs the extension",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"content_scripts": [
{
"js": [
"content-script.js"
],
"matches": [
"http://*.example.com//"
]
}
]
}
Memasukkan skrip konten
{
"manifest_version": 3,
"name": "Click to run",
"description": "Runs a script when the user clicks the action toolbar icon.",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"background": {
"service_worker": "service-worker.js"
},
"action": {
"default_icon": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
}
},
"permissions": ["scripting", "activeTab"]
}
Pop-up dengan izin
{
"manifest_version": 3,
"name": "Popup extension that requests permissions",
"description": "Extension that includes a popup and requests host permissions and storage permissions .",
"version": "1.0",
"icons": {
"16": "images/icon-16.png",
"32": "images/icon-32.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"action": {
"default_popup": "popup.html"
},
"host_permissions": [
"https://*.example.com/"
],
"permissions": [
"storage"
]
}
Panel samping
{
"manifest_version": 3,
"name": "Side panel extension",
"version": "1.0",
"description": "Extension with a default side panel.",
"icons": {
"16": "images/icon-16.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"side_panel": {
"default_path": "sidepanel.html"
},
"permissions": ["sidePanel"]
}
Kunci manifes
Berikut adalah daftar semua kunci manifes yang didukung.
Kunci yang diperlukan oleh platform Ekstensi
"manifest_version"
- Bilangan bulat yang menentukan versi format file manifes yang digunakan ekstensi Anda. Satu-satunya nilai yang didukung adalah
3
. "name"
- String yang mengidentifikasi ekstensi di Chrome Web
Store, dialog penginstalan, dan
halaman Ekstensi Chrome pengguna (
chrome://extensions
). Panjang maksimumnya adalah 75 karakter. Untuk informasi tentang penggunaan nama khusus lokalitas, lihat Internasionalisasi. "version"
- String yang mengidentifikasi nomor versi ekstensi. Untuk informasi tentang pemformatan nomor versi, lihat Versi.
Kunci yang diperlukan oleh Chrome Web Store
"description"
- String yang menjelaskan ekstensi di Chrome Web Store dan halaman pengelolaan ekstensi pengguna. Panjang maksimumnya adalah 132 karakter. Untuk informasi tentang menerjemahkan deskripsi, lihat Internasionalisasi.
"icons"
- Satu atau beberapa ikon yang mewakili ekstensi Anda. Untuk mengetahui informasi tentang praktik terbaik, lihat Ikon.
Kunci opsional
"action"
- Menentukan tampilan dan perilaku ikon ekstensi di Toolbar
Google. Untuk informasi selengkapnya, lihat
chrome.action
. "author"
- Menentukan alamat email akun yang digunakan untuk membuat ekstensi.
"background"
- Menentukan file JavaScript yang berisi pekerja layanan ekstensi, yang berfungsi sebagai pengendali peristiwa. Untuk mengetahui informasi selengkapnya, lihat Tentang pekerja layanan ekstensi.
"chrome_settings_overrides"
- Menentukan penggantian untuk setelan Chrome yang dipilih. Untuk mengetahui informasi selengkapnya, lihat Mengganti setelan Chrome.
"chrome_url_overrides"
- Menentukan penggantian untuk halaman Chrome default. Untuk mengetahui informasi selengkapnya, lihat Mengganti halaman Chrome.
"commands"
- Menentukan pintasan keyboard dalam ekstensi. Untuk mengetahui informasi selengkapnya, lihat chrome.commands.
"content_scripts"
- Menentukan file JavaScript atau CSS yang akan digunakan saat pengguna membuka halaman web tertentu. Untuk informasi selengkapnya, lihat Skrip konten.
"content_security_policy"
- Menentukan batasan pada skrip, gaya, dan resource lain yang dapat digunakan ekstensi. Untuk informasi selengkapnya, lihat Kebijakan keamanan konten.
"cross_origin_embedder_policy"
- Menentukan nilai untuk header HTTP Cross-Origin-Embedder-Policy, yang mengonfigurasi penyematan resource lintas origin di halaman ekstensi.
"cross_origin_opener_policy"
- Menentukan nilai untuk header HTTP Cross-Origin-Opener-Policy, yang memungkinkan Anda memastikan bahwa halaman ekstensi tingkat teratas tidak berbagi grup konteks browser dengan dokumen lintas origin.
"declarative_net_request"
- Menentukan aturan statis untuk API declarativeNetRequest, yang memungkinkan pemblokiran dan perubahan permintaan jaringan.
"default_locale"
- String yang menentukan bahasa default ekstensi yang mendukung beberapa lokalitas. Contohnya termasuk "en" dan "pt_BR". Kunci ini diperlukan dalam ekstensi yang dilokalkan, dan tidak boleh digunakan dalam ekstensi yang tidak dilokalkan. Untuk informasi selengkapnya, lihat Internasionalisasi.
"devtools_page"
- Menentukan halaman yang menggunakan API DevTools.
"export"
- Mengizinkan resource diekspor dari ekstensi. Untuk mengetahui informasi selengkapnya, lihat Ekspor.
"externally_connectable"
- Menentukan halaman dan ekstensi lain yang dapat terhubung ke ekstensi Anda. Untuk mengetahui informasi selengkapnya, lihat
"externally_connectable"
. "homepage_url"
- String yang menentukan URL untuk halaman beranda ekstensi. Jika tidak ditentukan, halaman beranda akan ditetapkan secara default ke halaman Chrome Web Store ekstensi. Kolom ini sangat berguna jika Anda menghosting ekstensi di situs Anda sendiri.
"host_permissions"
- Mencantumkan halaman web yang diizinkan untuk berinteraksi dengan ekstensi Anda, yang ditentukan menggunakan pola pencocokan URL. Izin pengguna untuk situs ini diminta pada saat penginstalan. Untuk informasi selengkapnya, lihat Izin host.
"import"
- Memungkinkan resource diimpor ke dalam ekstensi. Untuk mengetahui informasi selengkapnya, lihat Impor.
"incognito"
- Menentukan perilaku ekstensi dalam mode Samaran. Nilai yang didukung adalah
"spanning"
,"split"
, dan"not_allowed"
. Untuk informasi selengkapnya, lihat Samaran. "key"
- Menentukan ID ekstensi Anda untuk berbagai kasus penggunaan pengembangan. Untuk mengetahui informasi selengkapnya, lihat Kunci.
"minimum_chrome_version"
- Menentukan versi Chrome tertua yang dapat menginstal ekstensi Anda. Nilai ini
harus berupa substring dari string versi browser Chrome yang ada, seperti
"107"
atau"107.0.5304.87"
. Pengguna dengan versi Chrome yang lebih lama dari versi minimum akan melihat peringatan "Tidak kompatibel" di Chrome Web Store, dan tidak dapat menginstal ekstensi Anda. Jika Anda menambahkannya ke ekstensi yang ada, pengguna yang versi Chrome-nya lebih lama tidak akan menerima update otomatis ke ekstensi Anda. Hal ini mencakup pengguna bisnis dalam mode singkat. "oauth2"
- Mengizinkan penggunaan ID keamanan OAuth 2.0. Nilai kunci ini harus berupa
objek dengan properti
"client_id"
dan"scopes"
. Untuk mengetahui detailnya, lihat tutorial OAuth 2.0. "omnibox"
- Memungkinkan ekstensi mendaftarkan kata kunci di kolom URL Chrome. Untuk informasi selengkapnya, lihat Omnibox.
"optional_host_permissions"
- Mendeklarasikan izin host opsional untuk ekstensi Anda.
"optional_permissions"
- Mendeklarasikan izin opsional untuk ekstensi Anda.
"options_page"
- Menentukan jalur ke file options.html yang akan digunakan ekstensi sebagai halaman opsi. Untuk mengetahui informasi selengkapnya, lihat Memberikan opsi kepada pengguna.
"options_ui"
- Menentukan jalur ke file HTML yang memungkinkan pengguna mengubah opsi ekstensi dari halaman Ekstensi Chrome. Untuk mengetahui informasi selengkapnya, lihat Opsi tersemat.
"permissions"
- Mengaktifkan penggunaan API ekstensi tertentu. Lihat Izin untuk penjelasan umum. Halaman referensi untuk setiap API mencantumkan izin yang diperlukan.
"requirements"
- Mencantumkan teknologi yang diperlukan untuk menggunakan ekstensi. Untuk mengetahui daftar persyaratan yang didukung, lihat Persyaratan.
"sandbox"
- Menentukan kumpulan halaman ekstensi yang tidak memiliki akses ke API ekstensi atau akses langsung ke halaman tanpa sandbox. Untuk mengetahui informasi selengkapnya, lihat Sandbox.
"short_name"
- String yang berisi versi singkat nama ekstensi yang akan digunakan saat ruang karakter terbatas. Panjang maksimumnya adalah 12 karakter. Jika tidak ditentukan, versi kunci "name" yang terpotong akan ditampilkan.
"side_panel"
- Mengidentifikasi file HTML yang akan ditampilkan di sidePanel.
"storage"
- Mendeklarasikan skema JSON untuk area penyimpanan terkelola. Untuk mengetahui informasi selengkapnya, lihat Manifes untuk area penyimpanan.
"tts_engine"
- Mendaftarkan ekstensi sebagai mesin text to speech. Untuk informasi selengkapnya, lihat API ttsEngine.
"update_url"
- String yang berisi URL halaman update ekstensi. Gunakan kunci ini jika Anda menghosting ekstensi di luar Chrome Web Store.
"version_name"
- String yang menjelaskan versi ekstensi. Contohnya mencakup
"1.0 beta"
dan"build rc2"
. Jika tidak ditentukan, nilai "version" akan ditampilkan di halaman pengelolaan ekstensi. "web_accessible_resources"
- Menentukan file dalam ekstensi yang dapat diakses oleh halaman web atau ekstensi lainnya. Untuk mengetahui informasi selengkapnya, lihat Resource yang Dapat Diakses Web.
Tombol ChromeOS opsional
"file_browser_handlers"
- Memberikan akses ke
fileBrowserHandler
API, yang memungkinkan ekstensi mengakses browser file ChromeOS. "file_handlers"
- Menentukan jenis file yang akan ditangani oleh ekstensi ChromeOS. Untuk informasi selengkapnya, lihat
file_handlers
. "file_system_provider_capabilities"
- Mengizinkan akses ke
fileSystemProvider
API, yang memungkinkan ekstensi membuat sistem file yang dapat digunakan ChromeOS. "input_components"
- Mengizinkan penggunaan Input Method Editor API. Untuk informasi selengkapnya, lihat
input_components
.