manifest.json ファイルは、WebExtension API を使う拡張機能に必ず含めなければならない唯一のファイルです。
manifest.json を使うことで、拡張機能の名前やバージョンといった基本的なメタデータを指定したり、拡張機能の機能的な側面として、例えばバックグラウンドスクリプトやコンテンツスクリプト、ブラウザーアクションを指定することもできます。
これは JSON形式のファイルですが、1つ例外があります: "//
"-形式のコメントが許可されています。
manifest.json のキー一覧は次の通り:
- author
- background
- browser_action
- browser_specific_settings
- chrome_settings_overrides
- chrome_url_overrides
- commands
- content_scripts
- content_security_policy
- default_locale
- description
- developer
- devtools_page
- homepage_url
- icons
- incognito
- manifest_version
- name
- omnibox
- optional_permissions
- options_ui
- page_action
- permissions
- protocol_handlers
- short_name
- sidebar_action
- theme
- version
- version_name
- web_accessible_resources
必須のキーは、"manifest_version"
, "version"
, "name"
だけです。"default_locale"
は "_locales" ディレクトリーが存在する場合は必要ですが、そうでない場合は不要です。"applications"
は Google Chrome でサポートされていません。Firefox では Firefox 48 以前と Android 版 Firefox では必須です。
拡張機能の manifest には、拡張機能の JavaScript から runtime.getManifest()
関数を使ってアクセスできます:
browser.runtime.getManifest().version;
例
下記のブロックには一般的な manifest keys の基本文法を示します。これはコピー・ペーストできるような使われ方のつもりではないのに注意してください: どのキーが必要かは開発している拡張機能に依存します。完全な例は Example extensions を見てください。
manifest.json の構文について、簡単な例を以下に示します。
{ "applications": { "gecko": { "id": "addon@example.com", "strict_min_version": "42.0" } }, "background": { "scripts": ["jquery.js", "my-background.js"], "page": "my-background.html" }, "browser_action": { "default_icon": { "19": "button/geo-19.png", "38": "button/geo-38.png" }, "default_title": "Whereami?", "default_popup": "popup/geo.html" }, "commands": { "toggle-feature": { "suggested_key": { "default": "Ctrl+Shift+Y", "linux": "Ctrl+Shift+U" }, "description": "Send a 'toggle-feature' event" } }, "content_security_policy": "script-src 'self' https://example.com; object-src 'self'", "content_scripts": [ { "exclude_matches": ["*://developer.mozilla.org/*"], "matches": ["*://*.mozilla.org/*"], "js": ["borderify.js"] } ], "default_locale": "en", "description": "...", "icons": { "48": "icon.png", "96": "icon@2x.png" }, "manifest_version": 2, "name": "...", "page_action": { "default_icon": { "19": "button/geo-19.png", "38": "button/geo-38.png" }, "default_title": "Whereami?", "default_popup": "popup/geo.html" }, "permissions": ["webNavigation"], "version": "0.1", "web_accessible_resources": ["images/my-image.png"] }
ブラウザーの実装状況
マニフェストキーとサブキーのすべてを見るには、完全な manifest.json ブラウザー互換テーブルを見てください。
デスクトップ | モバイル | ||||
---|---|---|---|---|---|
author | Chrome 完全対応 あり | Edge
完全対応
14
| Firefox 完全対応 52 | Opera 完全対応 あり | Firefox Android 完全対応 52 |
background | Chrome 完全対応 あり | Edge 完全対応 14 | Firefox 完全対応 48 | Opera 完全対応 あり | Firefox Android 完全対応 48 |
browser_action | Chrome
完全対応
あり
| Edge 完全対応 14 | Firefox 完全対応 48 | Opera
完全対応
あり
| Firefox Android 完全対応 55 |
browser_specific_settings | Chrome 未対応 なし | Edge 完全対応 15 | Firefox
完全対応
48
| Opera 未対応 なし | Firefox Android
完全対応
48
|
chrome_settings_overrides | Chrome 完全対応 あり | Edge 未対応 なし | Firefox 完全対応 55 | Opera 未対応 なし | Firefox Android 未対応 なし |
chrome_url_overrides | Chrome 完全対応 あり | Edge 未対応 なし | Firefox 完全対応 54 | Opera 未対応 なし | Firefox Android 未対応 なし |
commands | Chrome 完全対応 あり | Edge 未対応 なし | Firefox 完全対応 48 | Opera 完全対応 あり | Firefox Android 未対応 なし |
content_scripts | Chrome
完全対応
あり
| Edge 完全対応 14 | Firefox 完全対応 48 | Opera
完全対応
あり
| Firefox Android 完全対応 48 |
content_security_policy | Chrome 完全対応 あり | Edge
完全対応
14
| Firefox
完全対応
48
| Opera 完全対応 あり | Firefox Android
完全対応
48
|
default_locale | Chrome 完全対応 あり | Edge 完全対応 14 | Firefox 完全対応 48 | Opera 完全対応 あり | Firefox Android 完全対応 48 |
description | Chrome 完全対応 あり | Edge 完全対応 14 | Firefox 完全対応 48 | Opera 完全対応 あり | Firefox Android 完全対応 48 |
developer | Chrome 未対応 なし | Edge 未対応 なし | Firefox 完全対応 52 | Opera 完全対応 あり | Firefox Android 完全対応 52 |
devtools_page | Chrome 完全対応 あり | Edge 未対応 なし | Firefox 完全対応 54 | Opera 完全対応 あり | Firefox Android 未対応 なし |
externally_connectable | Chrome 完全対応 あり | Edge 未対応 なし | Firefox
未対応
なし
| Opera 完全対応 あり | Firefox Android 未対応 なし |
homepage_url | Chrome 完全対応 あり | Edge 未対応 なし | Firefox 完全対応 48 | Opera 完全対応 あり | Firefox Android 完全対応 48 |
icons | Chrome
完全対応
あり
| Edge 完全対応 14 | Firefox 完全対応 48 | Opera 完全対応 あり | Firefox Android 完全対応 48 |
incognito | Chrome 完全対応 あり | Edge 完全対応 あり | Firefox 完全対応 48 | Opera 完全対応 あり | Firefox Android 完全対応 48 |
manifest_version | Chrome 完全対応 4 | Edge 完全対応 14 | Firefox 完全対応 48 | Opera 完全対応 15 | Firefox Android 完全対応 48 |
name | Chrome 完全対応 あり | Edge 完全対応 14 | Firefox 完全対応 48 | Opera 完全対応 あり | Firefox Android 完全対応 48 |
offline_enabled | Chrome 完全対応 あり | Edge 未対応 なし | Firefox 未対応 なし | Opera 完全対応 あり | Firefox Android 未対応 なし |
omnibox | Chrome 完全対応 あり | Edge 未対応 なし | Firefox 完全対応 52 | Opera 完全対応 あり | Firefox Android 未対応 なし |
optional_permissions | Chrome 完全対応 あり | Edge 未対応 なし | Firefox 完全対応 55 | Opera 完全対応 あり | Firefox Android 完全対応 55 |
options_page | Chrome 完全対応 あり | Edge 完全対応 14 | Firefox 未対応 なし | Opera 完全対応 15 | Firefox Android 未対応 なし |
options_ui | Chrome 完全対応 40 | Edge 未対応 なし | Firefox 完全対応 48 | Opera 完全対応 27 | Firefox Android 完全対応 57 |
page_action | Chrome
完全対応
あり
| Edge 完全対応 14 | Firefox 完全対応 48 | Opera
完全対応
あり
| Firefox Android 完全対応 あり |
permissions | Chrome 完全対応 あり | Edge 完全対応 14 | Firefox 完全対応 48 | Opera 完全対応 あり | Firefox Android 完全対応 48 |
protocol_handlers | Chrome 未対応 なし | Edge 未対応 なし | Firefox 完全対応 54 | Opera 未対応 なし | Firefox Android 完全対応 54 |
short_name | Chrome 完全対応 あり | Edge 完全対応 14 | Firefox 完全対応 48 | Opera 完全対応 あり | Firefox Android 完全対応 48 |
sidebar_action | Chrome 未対応 なし | Edge 未対応 なし | Firefox 完全対応 54 | Opera 完全対応 30 | Firefox Android 未対応 なし |
theme | Chrome 完全対応 あり | Edge 未対応 なし | Firefox 完全対応 55 | Opera 未対応 なし | Firefox Android 完全対応 あり |
theme_experiment | Chrome 未対応 なし | Edge 未対応 なし | Firefox 完全対応 63 | Opera 未対応 なし | Firefox Android 未対応 なし |
version | Chrome
完全対応
あり
| Edge 完全対応 14 | Firefox 完全対応 48 | Opera 完全対応 あり | Firefox Android 完全対応 48 |
version_name | Chrome 完全対応 あり | Edge 未対応 なし | Firefox 未対応 なし | Opera 完全対応 あり | Firefox Android 未対応 なし |
web_accessible_resources | Chrome 完全対応 あり | Edge 完全対応 14 | Firefox 完全対応 48 | Opera 完全対応 あり | Firefox Android 完全対応 48 |
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応
- 非推奨。新しいウェブサイトでは使用しないでください。
- 非推奨。新しいウェブサイトでは使用しないでください。
- 実装ノートを参照してください。
- 実装ノートを参照してください。
- 非標準の名前を使用しています。
- 非標準の名前を使用しています。