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

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

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

ブラウザーの実装状況

ChromeEdgeFirefoxFirefox for AndroidOpera
applications なし151

48

481

48

481

なし
author あり1425252 あり
background あり1434848 あり
browser_action あり4144855 あり4
chrome_settings_overrides あり なし55 なし なし
chrome_url_overrides あり なし54 なし なし
commands あり なし48 なし あり
content_scripts あり514486486 あり5
content_security_policy あり147488488 あり
default_locale あり144848 あり
description あり144848 あり
developer なし なし5252 あり
devtools_page あり なし54 なし あり
externally_connectable あり なし なし9 なし あり
homepage_url あり なし4848 あり
icons あり144848 あり
incognito あり なし4848 あり
manifest_version あり144848 あり
name あり144848 あり
omnibox あり なし52 なし あり
optional_permissions あり なし5555 あり
options_page あり14 なし なし15
options_ui40 なし48572710
page_action

あり11 12

4913

1411 1448 あり あり11 12
permissions あり144848 あり
protocol_handlers なし なし5454 なし
short_name あり144848 あり
sidebar_action なし なし54 なし30
theme あり なし55 なし なし
version あり15144848 あり
version_name あり なし なし なし あり
web_accessible_resources あり144848 あり

1. Supported as browser_specific_settings.

2. This key is mandatory in Microsoft Edge.

3. The 'persistent' property is mandatory.

4. If an extension defines a browser action, it is not allowed to define a page action as well.

5. Content scripts are not applied to tabs already open when the extension is loaded.

6. Content scripts won't be injected into empty iframes at 'document_start' even if you specify that value in 'run_at'.

7. Only the default content security policy is supported: "script-src 'self'; object-src 'self';".

8. Firefox does not support 'http://127.0.0.1' or 'http://localhost' as script sources: they must be served over HTTPS.

9. See bug 1319168.

10. Options pages are always opened in a separate browser tab.

11. SVG icons are not supported.

12. If an extension defines a page action, it is not allowed to define a browser action as well.

13. Since Chrome 49, page actions are displayed on the toolbar, rather than in the address bar.

14. 'default_icon' must be an object, with explicit sizes.

15. Valid Chrome versions are a subset of valid Firefox versions.

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

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