manifest.json ファイルは、WebExtension API を使う拡張機能に必ず含めなければならない唯一のファイルです。

manifest.json を使うことで、拡張機能の名前やバージョンといった基本的なメタデータを指定したり、拡張機能の機能的な側面として、例えばバックグラウンドスクリプトやコンテンツスクリプト、ブラウザーアクションを指定することもできます。

これは JSON形式のファイルですが、1つ例外があります: "//"-形式のコメントが許可されています。

manifest.json のキー一覧は次の通り:

 

必須のキーは、"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 ブラウザー互換テーブルを見てください。

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxOperaAndroid 版 Firefox
applicationsChrome 未対応 なしEdge 完全対応 15
代替名
完全対応 15
代替名
代替名 非標準の名前 browser_specific_settings を使用しています。
Firefox 完全対応 48
完全対応 48
完全対応 48
代替名
代替名 非標準の名前 browser_specific_settings を使用しています。
Opera 未対応 なしFirefox Android 完全対応 48
完全対応 48
完全対応 48
代替名
代替名 非標準の名前 browser_specific_settings を使用しています。
authorChrome 完全対応 ありEdge 完全対応 14
補足
完全対応 14
補足
補足 This key is mandatory in Microsoft Edge.
Firefox 完全対応 52Opera 完全対応 ありFirefox Android 完全対応 52
backgroundChrome 完全対応 ありEdge 完全対応 14
補足
完全対応 14
補足
補足 The 'persistent' property is mandatory.
Firefox 完全対応 48Opera 完全対応 ありFirefox Android 完全対応 48
browser_actionChrome 完全対応 あり
補足
完全対応 あり
補足
補足 If an extension defines a browser action, it is not allowed to define a page action as well.
Edge 完全対応 14Firefox 完全対応 48Opera 完全対応 あり
補足
完全対応 あり
補足
補足 If an extension defines a browser action, it is not allowed to define a page action as well.
Firefox Android 完全対応 55
chrome_settings_overridesChrome 完全対応 ありEdge 未対応 なしFirefox 完全対応 55Opera 未対応 なしFirefox Android 未対応 なし
chrome_url_overridesChrome 完全対応 ありEdge 未対応 なしFirefox 完全対応 54Opera 未対応 なしFirefox Android 未対応 なし
commandsChrome 完全対応 ありEdge 未対応 なしFirefox 完全対応 48Opera 完全対応 ありFirefox Android 未対応 なし
content_scriptsChrome 完全対応 あり
補足
完全対応 あり
補足
補足 Content scripts are not applied to tabs already open when the extension is loaded.
Edge 完全対応 14Firefox 完全対応 48
補足
完全対応 48
補足
補足 Content scripts won't be injected into empty iframes at 'document_start' even if you specify that value in 'run_at'.
Opera 完全対応 あり
補足
完全対応 あり
補足
補足 Content scripts are not applied to tabs already open when the extension is loaded.
Firefox Android 完全対応 48
補足
完全対応 48
補足
補足 Content scripts won't be injected into empty iframes at 'document_start' even if you specify that value in 'run_at'.
content_security_policyChrome 完全対応 ありEdge 完全対応 14
補足
完全対応 14
補足
補足 Only the default content security policy is supported: "script-src 'self'; object-src 'self';".
Firefox 完全対応 48
補足
完全対応 48
補足
補足 Firefox does not support 'http://127.0.0.1' or 'http://localhost' as script sources: they must be served over HTTPS.
Opera 完全対応 ありFirefox Android 完全対応 48
補足
完全対応 48
補足
補足 Firefox does not support 'http://127.0.0.1' or 'http://localhost' as script sources: they must be served over HTTPS.
default_localeChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 48Opera 完全対応 ありFirefox Android 完全対応 48
descriptionChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 48Opera 完全対応 ありFirefox Android 完全対応 48
developerChrome 未対応 なしEdge 未対応 なしFirefox 完全対応 52Opera 完全対応 ありFirefox Android 完全対応 52
devtools_pageChrome 完全対応 ありEdge 未対応 なしFirefox 完全対応 54Opera 完全対応 ありFirefox Android 未対応 なし
externally_connectableChrome 完全対応 ありEdge 未対応 なしFirefox 未対応 なし
補足
未対応 なし
補足
補足 See bug 1319168.
Opera 完全対応 ありFirefox Android 未対応 なし
homepage_urlChrome 完全対応 ありEdge 未対応 なしFirefox 完全対応 48Opera 完全対応 ありFirefox Android 完全対応 48
iconsChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 48Opera 完全対応 ありFirefox Android 完全対応 48
incognitoChrome 完全対応 ありEdge 未対応 なしFirefox 完全対応 48Opera 完全対応 ありFirefox Android 完全対応 48
manifest_versionChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 48Opera 完全対応 ありFirefox Android 完全対応 48
nameChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 48Opera 完全対応 ありFirefox Android 完全対応 48
omniboxChrome 完全対応 ありEdge 未対応 なしFirefox 完全対応 52Opera 完全対応 ありFirefox Android 未対応 なし
optional_permissionsChrome 完全対応 ありEdge 未対応 なしFirefox 完全対応 55Opera 完全対応 ありFirefox Android 完全対応 55
options_page
非推奨
Chrome 完全対応 ありEdge 完全対応 14Firefox 未対応 なしOpera 完全対応 15Firefox Android 未対応 なし
options_uiChrome 完全対応 40Edge 未対応 なしFirefox 完全対応 48Opera 完全対応 27
補足
完全対応 27
補足
補足 Options pages are always opened in a separate browser tab.
Firefox Android 完全対応 57
page_actionChrome 完全対応 あり
補足
完全対応 あり
補足
補足 SVG icons are not supported.
補足 If an extension defines a page action, it is not allowed to define a browser action as well.
完全対応 49
補足
補足 Since Chrome 49, page actions are displayed on the toolbar, rather than in the address bar.
Edge 完全対応 14
補足
完全対応 14
補足
補足 SVG icons are not supported.
補足 'default_icon' must be an object, with explicit sizes.
Firefox 完全対応 48Opera 完全対応 あり
補足
完全対応 あり
補足
補足 SVG icons are not supported.
補足 If an extension defines a page action, it is not allowed to define a browser action as well.
Firefox Android 完全対応 あり
permissionsChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 48Opera 完全対応 ありFirefox Android 完全対応 48
protocol_handlersChrome 未対応 なしEdge 未対応 なしFirefox 完全対応 54Opera 未対応 なしFirefox Android 完全対応 54
short_nameChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 48Opera 完全対応 ありFirefox Android 完全対応 48
sidebar_actionChrome 未対応 なしEdge 未対応 なしFirefox 完全対応 54Opera 完全対応 30Firefox Android 未対応 なし
themeChrome 完全対応 ありEdge 未対応 なしFirefox 完全対応 55Opera 未対応 なしFirefox Android 未対応 なし
versionChrome 完全対応 あり
補足
完全対応 あり
補足
補足 Valid Chrome versions are a subset of valid Firefox versions.
Edge 完全対応 14Firefox 完全対応 48Opera 完全対応 ありFirefox Android 完全対応 48
version_nameChrome 完全対応 ありEdge 未対応 なしFirefox 未対応 なしOpera 完全対応 ありFirefox Android 未対応 なし
web_accessible_resourcesChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 48Opera 完全対応 ありFirefox Android 完全対応 48

凡例

完全対応  
完全対応
未対応  
未対応
非推奨。新しいウェブサイトでは使用しないでください。
非推奨。新しいウェブサイトでは使用しないでください。
実装ノートを参照してください。
実装ノートを参照してください。
非標準の名前を使用しています。
非標準の名前を使用しています。

ドキュメントのタグと貢献者

このページの貢献者: Uemmra3, Marsf, hashedhyphen, lv7777, kmaglione
最終更新者: Uemmra3,