Chrome拡張機能 Manifest V3のpermissions(権限)一覧と設定方法まとめ

プログラミング・Web開発カテゴリを表すパンダのイラスト プログラミング・Web開発

Chrome拡張機能を開発する際、manifest.jsonで各種APIを利用するために宣言するのがpermissions(権限)です。本記事では、Manifest V3(MV3)におけるパーミッションの分類ルールと、開発でよく利用される主要なパーミッション一覧をまとめます。

Manifest V3におけるパーミッション設定の重要ルール

Manifest V3では、Manifest V2からパーミッションの宣言方法が大きく見直されています。特に注意が必要なのは以下の点です。

  • host_permissions の分離: http://*/* や https://example.com/*、<all_urls> などのURLパターン(ホスト権限)は、permissions ではなく専用の host_permissions フィールドへ記述します。
  • activeTabの推奨: ユーザーが拡張機能のアイコンをクリックしたときだけ一時的にアクティブなタブへアクセスできる activeTab を使うことで、インストール時の不要な警告を減らせます。
  • optional_permissions の活用: インストール時ではなく、機能の利用時にユーザーへ許可を求める権限は optional_permissions に宣言します。

manifest.json の記述例

{
  "manifest_version": 3,
  "name": "My Chrome Extension",
  "version": "1.0",
  "permissions": [
    "storage",
    "tabs",
    "contextMenus",
    "notifications",
    "alarms"
  ],
  "host_permissions": [
    "https://*.example.com/*"
  ],
  "optional_permissions": [
    "downloads",
    "bookmarks"
  ]
}

主要パーミッション一覧(permissions)

拡張機能でよく利用される主なAPI識別子一覧です。利用する機能に応じて permissions 配列へ追加します。

パーミッション名利用できるAPI・主な用途
activeTabユーザー操作時に現在開いているタブへ一時的なアクセス権を付与
alarmschrome.alarms API(定期的なタスク実行やタイマー処理)
bookmarkschrome.bookmarks API(ブックマークの作成・編集・参照)
clipboardReadクリップボードからのデータ読み取り(ペースト処理)
clipboardWriteクリップボードへのデータ書き込み(コピー処理)
contextMenuschrome.contextMenus API(右クリックメニューへの項目追加)
cookieschrome.cookies API(Cookieの取得・変更・監視)
debuggerchrome.debugger API(DevToolsプロトコルを用いたデバッグ)
declarativeNetRequestchrome.declarativeNetRequest API(宣言的ルールによる通信ブロック・変更)
downloadschrome.downloads API(ファイルのダウンロード制御・監視)
historychrome.history API(閲覧履歴の取得・操作)
managementchrome.management API(インストール済み拡張やアプリの管理)
nativeMessagingネイティブアプリケーションとのプロセス間通信
notificationschrome.notifications API(デスクトップ通知の表示)
offscreenchrome.offscreen API(DOM操作や音声再生のためのバックグラウンド画面)
scriptingchrome.scripting API(タブへのスクリプト・CSSの動的挿入)
sidePanelchrome.sidePanel API(ブラウザのサイドパネル表示)
storagechrome.storage API(拡張機能データの永続化保存)
tabschrome.tabs API(タブのURL・タイトル等の機微情報の取得)
unlimitedStoragechrome.storage.local や IndexedDB の容量制限を解除
webNavigationchrome.webNavigation API(ページ遷移やロード状態の監視)

パーミッション宣言時の注意点

  • 不要な権限は要求しない: 過剰なパーミッションを宣言すると、インストール時に強い警告(「アクセスしたすべてのウェブサイトのデータを読み取り・変更」など)が表示され、Chrome Web Storeの審査も厳しくなります。
  • APIごとに個別調査が必要: 多くのChrome API(例: chrome.action や chrome.runtime)は permissions の宣言なしでそのまま使えます。まずは公式ドキュメントでパーミッションが必要かどうかを確認してください。

詳細なAPI仕様や最新の利用条件は、Google公式の chrome.permissions ドキュメント を参照してください。

この記事の更新履歴

この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。

2026年9月20日

  • 変更機械翻訳による不自然な表記や崩れたテーブル構造を修正し、API名と説明を整理しました。
  • 追加Manifest V3での重要変更点であるpermissionsとhost_permissionsの分離について解説とmanifest.jsonの記述例を追加しました。
  • 削除Manifest V2前提の古いドキュメントリンクや不完全なURL指定を削除しました。

文書情報

記事タイトル
Chrome拡張機能 Manifest V3のpermissions(権限)一覧と設定方法まとめ
作成日
更新日
Source URL
https://papanda925.com/?p=1926

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました