Chrome拡張機能の開発において、manifest.json は拡張機能の「設定ファイル」として中心的な役割を果たします。Manifest V3ではセキュリティやパフォーマンスの観点から仕様が大きく見直されており、記述方法にもいくつかの重要な変更点があります。以下に、Manifest V3における manifest.json の役割と記述方法を詳しく説明します。
1. manifest.json の役割
-
拡張機能のメタデータ(名前、バージョン、アイコンなど)を定義
-
拡張機能が使用する権限(permissions)を明示
-
拡張機能の構成ファイル(バックグラウンドスクリプト、アクション、コンテンツスクリプトなど)を宣言
-
ブラウザに対して、拡張機能の動作の概要を伝える
Manifestファイルがないと、Chromeは拡張機能として認識しません。
2. Manifest V3 の基本構成(例)
3. 主なプロパティの解説
manifest_version
-
値は 3 を指定(Manifest V2は2023年以降非推奨)
-
このフィールドによりChromeがManifest V3であることを判断
name, version, description
-
ユーザーやChromeが拡張機能を識別するための基本情報
action
-
ブラウザツールバーの拡張機能アイコンに関連する設定
-
default_popupで表示されるHTMLファイルを指定 -
default_iconに各サイズのアイコンを設定
background
-
service worker を指定(Manifest V3では
background.jsは長時間の常駐不可) -
旧来の
persistent: trueは使用不可
permissions
-
拡張機能が必要とするChrome APIへのアクセス権限を記述(例:
storage,tabs)
host_permissions
-
Webページへのアクセスに関する明示的なホスト指定
-
以前の
permissionsに書いていたURLアクセス権限はここへ分離された
content_scripts
-
対象ページ上で実行するスクリプトの指定
-
matchesに対象URLパターン、jsに読み込むスクリプトファイル
icons
-
拡張機能のアイコンとして使用する画像のパスを指定(サイズ別)
4. Manifest V2との主な違い(補足)
| 機能 | Manifest V2 | Manifest V3 |
|---|---|---|
| バックグラウンド | background.page | background.service_worker |
| スクリプト動作 | 常駐型(persistent) | 非常駐型(イベントベース) |
| パーミッション | permissions にURL含む | URLは host_permissions に分離 |
| 実行環境 | グローバルなスコープ | スコープが制限されたworker |
5. 注意点
-
manifest.jsonは UTF-8 形式で保存 -
構文エラーがあると拡張機能の読み込みが失敗する
-
service_workerは同期的な処理ができないため、Promiseベースの設計が推奨される
必要に応じて、用途に応じた commands(ショートカットキー)、options_page(設定画面)などのプロパティも追加できます。
生成日:2025/05/18