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

すべての拡張機能には、その拡張機能の構造と動作に関する重要な情報が記載された 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 つ以上のアイコン。ベスト プラクティスについては、Iconsをご覧ください。

オプションのキー

"action"
: Google ツールバーでの拡張機能のアイコンの外観と動作を定義します。詳細については、chrome.action をご覧ください。
"background"
拡張機能の Service Worker を含む 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" などがあります。指定しない場合、拡張機能の管理ページに「バージョン」の値が表示されます。
"web_accessible_resources"
ウェブページや他の拡張機能からアクセスできる拡張機能内のファイルを定義します。詳しくは、ウェブ アクセス可能なリソースをご覧ください。

ChromeOS のオプションのキー

"file_browser_handlers"
fileBrowserHandler API へのアクセスを提供します。この API を使用すると、拡張機能から ChromeOS ファイル ブラウザにアクセスできます。
"file_handlers"
ChromeOS 拡張機能が処理するファイル形式を指定します。詳しくは、file_handlers をご覧ください。
"file_system_provider_capabilities"
fileSystemProvider API へのアクセスを許可します。この API を使用すると、拡張機能で ChromeOS が使用できるファイル システムを作成できます。
"input_components"
インプット メソッド エディタ API の使用を許可します。詳細については、input_components をご覧ください。