Format file manifes

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 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"]
}
{
  "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 Extensions

"manifest_version"
Bilangan bulat yang menentukan versi format file manifes yang ekstensi. Satu-satunya nilai yang didukung adalah 3.
"name"
String yang mengidentifikasi ekstensi di Web Chrome Store, dialog penginstalan, dan halaman Ekstensi Chrome pengguna (chrome://extensions). Tujuan panjang maksimum adalah 75 karakter. Untuk informasi tentang penggunaan nama khusus lokalitas, lihat Internasionalisasi.
"version"
String yang mengidentifikasi nomor versi ekstensi. Untuk mengetahui informasi tentang pemformatan nomor versi, lihat Versi.

Kunci yang diperlukan oleh Chrome Web Store

"description"
String yang mendeskripsikan ekstensi di Chrome Web Store dan pengguna halaman pengelolaan ekstensi. Panjang maksimum adalah 132 karakter. Untuk informasi cara melokalkan deskripsi, lihat Internasionalisasi.
"icons"
Satu atau beberapa ikon yang mewakili ekstensi Anda. Untuk informasi tentang praktik, lihat Ikon.

Kunci opsional

"action"
Menentukan tampilan dan perilaku ikon ekstensi di Google {i>Toolbar <i}yang sama. Untuk informasi selengkapnya, lihat chrome.action.
"author"
Menentukan alamat email akun yang digunakan untuk membuat .
"background"
Menentukan file JavaScript yang berisi pekerja layanan ekstensi, yang berfungsi sebagai suatu pengendali peristiwa. Untuk informasi selengkapnya, lihat Tentang layanan ekstensi pekerja.
"chrome_settings_overrides"
Menentukan penggantian untuk setelan Chrome yang dipilih. Untuk informasi selengkapnya, lihat Mengganti setelan Chrome.
"chrome_url_overrides"
Menentukan penggantian untuk halaman Chrome default. Untuk informasi selengkapnya, lihat Mengganti halaman Chrome.
"commands"
Menentukan pintasan keyboard dalam ekstensi. Untuk selengkapnya informasi selengkapnya, lihat chrome.commands.
"content_scripts"
Menentukan file JavaScript atau CSS yang akan digunakan saat pengguna membuka web tertentu halaman. Untuk mengetahui informasi selengkapnya, lihat Skrip konten.
"content_security_policy"
Menentukan batasan pada skrip, gaya, dan resource lain yang terdapat di ekstensi digunakan. 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 atas tidak membagikan konteks penjelajahan grup dengan dokumen lintas origin.
"declarative_net_request"
Menentukan aturan statis untuk declarativeNetRequest API, yang memungkinkan pemblokiran dan modifikasi permintaan jaringan.
"default_locale"
String yang menentukan bahasa default dari ekstensi yang mendukung beberapa lokalitas. Contohnya mencakup "en" dan "pt_BR". Kunci ini diperlukan di ekstensi yang dilokalkan, dan tidak boleh digunakan dalam ekstensi yang tidak dilokalkan. Untuk mengetahui informasi selengkapnya, lihat Internasionalisasi.
"devtools_page"
Menentukan halaman yang menggunakan DevTools API.
"export"
Mengizinkan resource untuk diekspor dari ekstensi. Untuk informasi selengkapnya, lihat Ekspor.
"externally_connectable"
Menentukan halaman dan ekstensi lain yang dapat terhubung ke ekstensi Anda. Sebagai informasi selengkapnya, lihat "externally_connectable".
"homepage_url"
String yang menentukan URL untuk halaman beranda ekstensi. Jika hal ini tidak terdefinisi, secara default, beranda akan diarahkan ke halaman Chrome Web Store ekstensi. Bidang ini adalah 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 saat penginstalan baik. Untuk mengetahui informasi selengkapnya, lihat Izin host.
"import"
Mengizinkan resource untuk diimpor ke ekstensi. Untuk 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 untuk berbagai kasus penggunaan pengembangan. Untuk selengkapnya informasi selengkapnya, lihat Kunci.
"minimum_chrome_version"
Menentukan versi Chrome terlama yang dapat menginstal ekstensi Anda. Nilainya 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, melihat pesan "Tidak kompatibel" peringatan di Chrome Web Store, dan tidak dapat menginstal ekstensi Anda. Jika Anda menambahkan ini ke ekstensi yang ada, Pengguna dengan versi Chrome yang lebih lama tidak akan menerima pembaruan otomatis ke . Termasuk pengguna bisnis di mode ephemeral.
"oauth2"
Mengizinkan penggunaan ID keamanan OAuth 2.0. Nilai kunci ini harus berupa dengan properti "client_id" dan "scopes". Untuk mengetahui detailnya, lihat OAuth 2.0.
"omnibox"
Mengizinkan ekstensi untuk mendaftarkan kata kunci di kolom URL Chrome. Untuk selengkapnya informasi selengkapnya, lihat Omnibox.
"optional_host_permissions"
Mendeklarasikan host opsional izin untuk ekstensi Anda.
"optional_permissions"
Mendeklarasikan izin opsional untuk ekstensi Anda.
"options_page"
Menentukan jalur ke file options.html untuk digunakan ekstensi sebagai halaman opsi. Untuk informasi selengkapnya, lihat Memberi pengguna lainnya.
"options_ui"
Menentukan jalur ke file HTML yang memungkinkan pengguna mengubah opsi ekstensi dari halaman Ekstensi Chrome. Untuk informasi selengkapnya, lihat Disematkan lainnya.
"permissions"
Memungkinkan 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 daftar dukungan persyaratan, lihat Persyaratan.
"sandbox"
Menentukan kumpulan halaman ekstensi yang tidak memiliki akses ke API ekstensi atau akses langsung ke halaman yang tidak di-sandbox. Untuk informasi selengkapnya, lihat Sandbox.
"short_name"
String yang berisi versi singkat dari nama ekstensi yang akan digunakan ketika ruang karakter terbatas. Panjang maksimum adalah 12 karakter. Jika ini adalah tidak ditentukan, versi "name" yang terpotong akan ditampilkan.
"side_panel"
Mengidentifikasi file HTML untuk ditampilkan di sidePanel.
"storage"
Mendeklarasikan skema JSON untuk penyimpanan terkelola area. Untuk selengkapnya informasi selengkapnya, lihat Manifes untuk area penyimpanan.
"tts_engine"
Mendaftarkan ekstensi sebagai mesin text to speech. Untuk informasi selengkapnya, lihat ttsEngine API.
"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 hal ini tidak ditentukan, maka "versi" nilai ditampilkan pada halaman pengelolaan ekstensi.
"web_accessible_resources"
Menentukan file dalam ekstensi yang dapat diakses oleh halaman web atau ekstensi. Untuk informasi selengkapnya, lihat Dapat Diakses Web Materi.

Kunci ChromeOS opsional

"file_browser_handlers"
Memberikan akses ke fileBrowserHandler API, yang memungkinkan ekstensi mengakses file browser 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.