Format file manifes

Setiap ekstensi harus memiliki file manifest.json dalam direktori utama 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"]
}
{
  "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 daftar semua kunci manifes yang didukung.

Kunci yang diperlukan oleh platform Extensions

"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 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 halaman pengelolaan ekstensi pengguna. Panjang maksimum adalah 132 karakter. Untuk informasi tentang pelokalan 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 Google Toolbar. 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 bertindak sebagai pengendali peristiwa. Untuk mengetahui informasi selengkapnya, lihat Tentang pekerja layanan ekstensi.
"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 mengetahui informasi selengkapnya, lihat chrome.commands.
"content_scripts"
Menentukan file JavaScript atau CSS yang akan digunakan saat pengguna membuka halaman web tertentu. Untuk mengetahui 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 atas tidak membagikan grup konteks penjelajahan 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 ekstensi yang mendukung beberapa lokalitas. Contohnya mencakup "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 DevTools API.
"export"
Memungkinkan resource diekspor dari ekstensi. Untuk mengetahui informasi selengkapnya, lihat Mengekspor.
"externally_connectable"
Menentukan halaman dan ekstensi lain yang dapat terhubung ke ekstensi Anda. Untuk 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 dapat berinteraksi dengan ekstensi Anda, yang ditentukan menggunakan pola pencocokan URL. Izin pengguna untuk situs ini diminta pada saat penginstalan. Untuk mengetahui informasi selengkapnya, lihat Izin host.
"import"
Memungkinkan resource diimpor ke ekstensi. Untuk mengetahui informasi selengkapnya, lihat Mengimpor.
"incognito"
Menentukan perilaku ekstensi dalam mode samaran. Nilai yang didukung adalah "spanning", "split", dan "not_allowed". Untuk mengetahui informasi selengkapnya, lihat Samaran.
"key"
Menentukan ID ekstensi Anda untuk berbagai kasus penggunaan pengembangan. Untuk informasi selengkapnya, lihat Kunci.
"minimum_chrome_version"
Menentukan versi Chrome terlama 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 menambahkan ekstensi ini ke ekstensi yang sudah ada, pengguna yang versi Chrome-nya lebih lama tidak akan menerima update otomatis pada ekstensi Anda. Hal ini mencakup pengguna bisnis dalam mode sementara.
"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 untuk mendaftarkan kata kunci di kolom URL Chrome. Untuk mengetahui 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 untuk ekstensi yang akan digunakan sebagai halaman opsi. Untuk mengetahui informasi selengkapnya, lihat Memberi pengguna opsi.
"options_ui"
Menentukan jalur ke file HTML yang memungkinkan pengguna mengubah opsi ekstensi dari halaman Ekstensi Chrome. Untuk informasi selengkapnya, lihat Opsi sematan.
"permissions"
Memungkinkan penggunaan API ekstensi tertentu. Lihat Izin untuk mengetahui penjelasan umum. Halaman referensi untuk setiap API mencantumkan izin yang diperlukan.
"requirements"
Mencantumkan teknologi yang diperlukan untuk menggunakan ekstensi. Untuk daftar persyaratan yang didukung, lihat Persyaratan.
"sandbox"
Menentukan kumpulan halaman ekstensi yang tidak memiliki akses ke API ekstensi atau akses langsung ke halaman yang tidak di-sandbox. Untuk mengetahui informasi selengkapnya, lihat Sandbox.
"short_name"
String yang berisi versi singkat dari nama ekstensi yang akan digunakan saat spasi karakter dibatasi. Panjang maksimum 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 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 tidak ditentukan, nilai "versi" akan ditampilkan di halaman pengelolaan ekstensi.
"web_accessible_resources"
Menentukan file dalam ekstensi yang dapat diakses oleh halaman web atau ekstensi lain. Untuk informasi selengkapnya, lihat Referensi yang Dapat Diakses Web.

Kunci ChromeOS opsional

"file_browser_handlers"
Menyediakan 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.