すべての拡張機能には、その拡張機能の構造と動作に関する重要な情報がリストされている 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をご覧ください。
- "background"
- イベント ハンドラとして機能する拡張機能のサービス ワーカーを含む JavaScript ファイルを指定します。詳細については、拡張機能サービス ワーカーについてをご覧ください。
- "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"。指定しない場合、拡張機能管理ページには「version」値が表示されます。
- "web_accessible_resources"
- ウェブページや他の拡張機能からアクセスできる拡張機能内のファイルを定義します。詳細については、ウェブでアクセス可能なリソースをご覧ください。
オプションの ChromeOS キー
- "file_browser_handlers"
- 拡張機能が ChromeOS ファイル ブラウザにアクセスできるようにする fileBrowserHandlerAPI へのアクセスを提供します。
- "file_handlers"
- ChromeOS 拡張機能が処理するファイル形式を指定します。詳しくは、file_handlersをご覧ください。
- "file_system_provider_capabilities"
- fileSystemProviderAPI へのアクセスを許可します。これにより、拡張機能は ChromeOS が使用できるファイル システムを作成できます。
- "input_components"
- Input Method Editor API の使用を許可します。詳細については、input_componentsをご覧ください。