拡張機能を開発するうえで最初に作成するのが、拡張機能の設計図となる「manifest.json」です。
現在のChrome拡張機能は「Manifest V3」という新しい仕様に準拠して記述する必要があります。
今回は、余計な権限を要求しない安心のセキュリティ設計を意識しながら、manifest.jsonの各項目の役割と書き方を分かりやすく解説します。
連載目次:右クリックでGoogleカレンダー登録するChrome拡張機能の自作
Manifest V3におけるmanifest.jsonの構造と役割
manifest.jsonとは?その役割
manifest.json は、拡張機能のメタデータ(名称、説明、バージョンなど)や、ブラウザに対して要求する権限、実行するスクリプトファイルを定義するファイルです。
Google Chromeはこのファイルを読み込むことで、「この拡張機能がどのような機能を持っており、どのような権限で動作するのか」を判別します。
manifest.jsonの全コード
作成した作業フォルダ内に、manifest.json というファイルを作成し、以下のコードをそのまま記述します。
{
"manifest_version": 3,
"name": "Quick Add to Google Calendar",
"version": "1.0.0",
"description": "選択したテキストから素早くGoogleカレンダーの予定を作成します。",
"permissions": [
"contextMenus"
],
"background": {
"service_worker": "background.js"
}
}
各プロパティの詳しい解説
1. 基本情報(メタデータ)
manifest_version:マニフェストのバージョンを指定します。現在の標準である3を指定します。name:Chromeの拡張機能一覧やツールバーに表示される名前です。version:拡張機能のバージョン番号です。初期開発時は1.0.0などとします。description:機能の概要説明です。管理画面等で表示されます。
2. 権限設定(permissions)
今回の拡張機能で最も注目したいのが、権限を contextMenus だけに絞っている点です。
- 右クリックメニュー(コンテキストメニュー)を登録するために必須の権限です。
- 閲覧履歴、Cookie、開いているWebページのDOM情報へのアクセス権限(tabsやactiveTabなど)は一切要求しません。
- 余計な警告メッセージが出ないため、セキュリティ面でも安心して使用できます。
3. バックグラウンド設定(background)
Manifest V3では、従来の常駐型バックグラウンドページに代わり、イベント発生時のみ起動するService Workerが採用されています。
"service_worker": "background.js" と指定することで、メモリを無駄に消費せず、ブラウザの動作を高速に保つことができます。
JSONを記述する際の注意点
JSON形式のファイルは文法に厳格です。よくある初歩的なミスとして以下があります。
- 末尾の不要なカンマ:最後の要素の後ろにカンマ(,)を残すと読み込みエラーになります。
- 二重引用符(ダブルクォーテーション):文字列やキーは必ずダブルクォーテーション(”)で囲みます。シングルクォーテーション(’)は使用できません。
まとめと次回の内容
これで拡張機能の土台となる設計図の準備が整いました。権限を最小限に絞ることで、シンプルかつ安全な構成を実現しています。
次回は、右クリックされたときに選択テキストを取得し、Googleカレンダーを開くメインスクリプト「background.js」の実装に進みます。
