ここへジャンプ:

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 なし1514848 なし
author あり あり25252 あり
background あり あり34848 あり
browser_action あり あり4855 あり
chrome_settings_overrides あり なし55 なし なし
chrome_url_overrides あり1554 なし なし
commands あり なし48 なし あり
content_scripts あり4 あり485485 あり4
content_security_policy あり あり6487487 あり
default_locale あり あり4848 あり
description あり あり4848 あり
developer なし なし5252 あり
devtools_page あり なし54 なし あり
homepage_url あり なし4848 あり
icons あり あり4848 あり
incognito あり なし4848 あり
manifest_version あり あり4848 あり
name あり あり4848 あり
omnibox あり なし52 なし あり
optional_permissions あり なし5555 あり
options_page あり14 なし なし15
options_ui40 なし4857278
page_action あり9 あり10 948 あり あり
permissions あり あり4848 あり
protocol_handlers なし なし5454 なし
short_name あり あり4848 あり
sidebar_action なし なし54 なし あり
theme あり なし55 なし なし
version あり11 あり4848 あり
version_name あり なし なし なし あり
web_accessible_resources あり あり4848 あり

1. Supported as browser_specific_settings.

2. This key is mandatory in Microsoft Edge.

3. The 'persistent' property is mandatory.

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

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

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

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

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

9. SVG icons are not supported.

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

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

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

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