マニフェスト ファイル形式

すべての拡張機能のルート ディレクトリに、その拡張機能の構造と動作に関する重要な情報を一覧表示する manifest.json ファイルが必要です。このページでは、拡張機能のマニフェストの構造と、拡張機能のマニフェストに含めることができる機能について説明します。

次のマニフェストの例では、独自のマニフェストを作成する際の出発点として、基本的なマニフェスト構造と、一般的に使用されるいくつかの機能を示しています。

最小限のマニフェスト

{
  "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"
  },
}

コンテンツ スクリプトを登録する

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

コンテンツ スクリプトを挿入する

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

サイドパネル

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

マニフェスト キー

サポートされているすべてのマニフェスト キーは次のとおりです。

拡張機能プラットフォームに必要なキー

"manifest_version"
拡張機能が使用するマニフェスト ファイル形式のバージョンを指定する整数。サポートされている値は 3 のみです。
"name"
Chrome ウェブストア、インストール ダイアログ、ユーザーの Chrome 拡張機能ページ(chrome://extensions)で拡張機能を識別する文字列。最大文字数は 75 文字です。ロケール固有の名前の使用方法については、多言語対応をご覧ください。
"version"
拡張機能のバージョン番号を識別する文字列。バージョン番号の形式については、バージョンをご覧ください。

Chrome ウェブストアで必要なキー

"description"
Chrome ウェブストアとユーザーの拡張機能管理ページの両方にある拡張機能を説明する文字列。最大長は 132 文字です。説明のローカライズについては、多言語対応をご覧ください。
"icons"
拡張機能を表す 1 つ以上のアイコン。ベスト プラクティスについては、アイコンをご覧ください。

オプションのキー

"action"
Google ツールバーに表示される拡張機能のアイコンの外観と動作を定義します。詳細については、chrome.action をご覧ください。
"author"
拡張機能の作成に使用したアカウントのメールアドレスを指定します。
"background"
拡張機能の Service Worker を含む JavaScript ファイルを指定します。Service Worker はイベント ハンドラとして機能します。詳細については、拡張機能 Service Worker についてをご覧ください。
"chrome_settings_overrides"
選択した Chrome 設定のオーバーライドを定義します。詳しくは、Chrome 設定のオーバーライドをご覧ください。
"chrome_url_overrides"
デフォルトの Chrome ページのオーバーライドを定義します。詳しくは、Chrome ページをオーバーライドするをご覧ください。
"commands"
拡張機能内のキーボード ショートカットを定義します。詳しくは、chrome.commands をご覧ください。
"content_scripts"
ユーザーが特定のウェブページを開くときに使用する JavaScript ファイルまたは CSS ファイルを指定します。詳しくは、コンテンツ スクリプトをご覧ください。
"content_security_policy"
拡張機能で使用できるスクリプト、スタイル、その他のリソースの制限を定義します。詳細については、コンテンツ セキュリティ ポリシーをご覧ください。
"cross_origin_embedder_policy"
Cross-Origin-Embedder-Policy HTTP ヘッダーの値を指定します。この値により、拡張機能ページへのクロスオリジン リソースの埋め込みが構成されます。
"cross_origin_opener_policy"
Cross-Origin-Opener-Policy HTTP ヘッダーの値を指定します。これにより、トップレベル拡張ページがクロスオリジン ドキュメントとブラウジング コンテキスト グループを共有しないようにできます。
"declarative_net_request"
declarativeNetRequest API の静的ルールを定義します。これにより、ネットワーク リクエストのブロックと変更が可能になります。
"default_locale"
複数のロケールをサポートする拡張機能のデフォルト言語を定義する文字列。たとえば、「en」や「pt_BR」などがあります。このキーはローカライズされた拡張機能では必須であり、ローカライズされていない拡張機能では使用できません。詳細については、多言語対応をご覧ください。
"devtools_page"
DevTools API を使用するページを定義します。
"export"
拡張機能からリソースをエクスポートできるようにします。詳細については、エクスポートをご覧ください。
"externally_connectable"
他のどのページや拡張機能を拡張機能に接続できるようにするかを指定します。詳細については、"externally_connectable" をご覧ください。
"homepage_url"
拡張機能のホームページの URL を指定する文字列。定義されていない場合、ホームページは拡張機能の Chrome ウェブストア ページのデフォルトになります。このフィールドは、独自のサイトで拡張機能をホストする場合に特に便利です。
"host_permissions"
拡張機能でやり取りできるウェブページをリストします。URL 一致パターンを使用して定義します。これらのサイトのユーザー権限は、インストール時にリクエストされます。詳しくは、ホストの権限をご覧ください。
"import"
リソースを拡張機能にインポートできるようにします。詳細については、インポートをご覧ください。
"incognito"
シークレット モードでの拡張機能の動作を定義します。サポートされている値は "spanning""split""not_allowed" です。詳しくは、シークレット モードをご覧ください。
"key"
さまざまな開発ユースケース向けに拡張機能の ID を指定します。詳細については、キーをご覧ください。
"minimum_chrome_version"
拡張機能をインストールできる最も古い Chrome バージョンを定義します。値は、既存の Chrome ブラウザ バージョン文字列の部分文字列("107""107.0.5304.87" など)にする必要があります。最小バージョンより前の Chrome バージョンを使用しているユーザーには、Chrome ウェブストアに「互換性なし」という警告が表示され、拡張機能をインストールできなくなります。これを既存の拡張機能に追加すると、古いバージョンの Chrome ユーザーには拡張機能の自動更新が適用されません。これには、エフェメラル モードのビジネス ユーザーが含まれます。
"oauth2"
OAuth 2.0 セキュリティ ID の使用を許可します。このキーの値は、"client_id" プロパティと "scopes" プロパティを持つオブジェクトである必要があります。詳細については、OAuth 2.0 のチュートリアルをご覧ください。
"omnibox"
Chrome のアドレスバーにキーワードを登録できるようにします。詳しくは、アドレスバーをご覧ください。
"optional_host_permissions"
拡張機能のオプションのホスト権限を宣言します。
"optional_permissions"
拡張機能のオプションの権限を宣言します。
"options_page"
オプション ページとして使用する拡張機能の options.html ファイルのパスを指定します。詳細については、ユーザーにオプションを提供するをご覧ください。
"options_ui"
ユーザーが Chrome 拡張機能ページから拡張機能オプションを変更できる HTML ファイルのパスを指定します。詳細については、埋め込みオプションをご覧ください。
"permissions"
特定の拡張機能 API の使用を有効にします。一般的な説明については、権限をご覧ください。各 API のリファレンス ページには、必要な権限の一覧が記載されています。
"requirements"
拡張機能を使用するために必要なテクノロジーを一覧表示します。サポートされている要件の一覧については、要件をご覧ください。
"sandbox"
拡張機能 API にアクセスできない、またはサンドボックス化されていないページに直接アクセスできない拡張機能ページのセットを定義します。詳細については、サンドボックスをご覧ください。
"short_name"
文字スペースが限られているときに使用される拡張機能の短縮版を含む文字列。最大文字数は 12 文字です。定義されていない場合は、代わりに「name」キーが短縮されて表示されます。
"side_panel"
sidePanel に表示する HTML ファイルを指定します。
"storage"
マネージド ストレージ領域の JSON スキーマを宣言します。詳しくは、ストレージ領域のマニフェストをご覧ください。
"tts_engine"
拡張機能をテキスト読み上げエンジンとして登録します。詳細については、ttsEngine API をご覧ください。
"update_url"
拡張機能の更新ページの URL を含む文字列。Chrome ウェブストア以外で拡張機能をホストする場合は、このキーを使用します。
"version_name"
拡張機能のバージョンを説明する文字列。たとえば、"1.0 beta""build rc2" などです。指定しない場合は、代わりに拡張機能の管理ページに「バージョン」の値が表示されます。
"web_accessible_resources"
ウェブページや他の拡張機能がアクセスできる拡張機能内のファイルを定義します。詳しくは、ウェブでアクセス可能なリソースをご覧ください。

オプションの ChromeOS キー

"file_browser_handlers"
fileBrowserHandler API へのアクセスを許可します。これにより、拡張機能が ChromeOS のファイル ブラウザにアクセスできるようになります。
"file_handlers"
ChromeOS 拡張機能で処理するファイル形式を指定します。詳しくは、file_handlers をご覧ください。
"file_system_provider_capabilities"
fileSystemProvider API へのアクセスを許可します。これにより、拡張機能が ChromeOS で使用できるファイル システムを作成できるようになります。
"input_components"
Input Method Editor API の使用を許可します。詳細については、input_components をご覧ください。