権限を宣言する

ほとんどの拡張機能 API と機能を使用するには、マニフェストの権限フィールドで拡張機能のインテントを宣言する必要があります。拡張機能は、次のカテゴリの権限をリクエストできます。これらの権限は、対応するマニフェスト キーを使用して指定します。

"permissions"
既知の文字列のリストのアイテムが含まれます。変更によって警告がトリガーされることがあります。
"optional_permissions"
インストール時ではなく、実行時にユーザーによって付与されます。
"content_scripts.matches"
コンテンツ スクリプトが 1 つ以上のホストに挿入されることを許可する 1 つ以上のマッチパターンが含まれます。変更によって警告がトリガーされることがあります。
"host_permissions"
1 つ以上のホストへのアクセスを許可する 1 つ以上のマッチパターンが含まれます。変更によって警告がトリガーされることがあります。
"optional_host_permissions"
インストール時ではなく、実行時にユーザーによって付与されます。

権限は、拡張機能がマルウェアによって侵害された場合の被害を抑えるのに役立ちます。警告付きの権限で説明されているように、インストール前または実行時に、ユーザーの同意を得るために一部の権限の警告が表示されます。

拡張機能の機能が許す限り、オプションの権限を使用することを検討してください。これにより、ユーザーはリソースやデータへのアクセスを十分に理解したうえで制御できるようになります。

API で権限が必要な場合は、その宣言方法がドキュメントに記載されています。例については、Storage API をご覧ください。

マニフェスト

マニフェスト ファイルの権限セクションの例を次に示します。

manifest.json:

{
  "name": "Permissions Extension",
  ...
  "permissions": [
    "activeTab",
    "contextMenus",
    "storage"
  ],
  "optional_permissions": [
    "topSites",
  ],
  "host_permissions": [
    "https://www.developer.chrome.com/*"
  ],
  "optional_host_permissions":[
    "https://*/*",
    "http://*/*"
  ],
  ...
  "manifest_version": 3
}

ホスト権限

ホスト権限により、拡張機能は URL の一致パターンを操作できます。一部の Chrome API では、API 独自の権限に加えてホスト権限が必要です。これについては、各リファレンス ページに記載されています。次に例を示します。

特別なケースでは、ホスト権限は必要ありません。たとえば、次のようなものが挙げられます。

  • chrome.tabs API を使用してタブにアクセスし、タブを変更します。tabs 権限がある場合は、タブの URL にもアクセスできます。
  • chrome.debugger API を使用してブラウザを操作します。
  • マニフェストで宣言されたコンテンツ スクリプトの挿入を許可します。

警告付きの権限

拡張機能が複数の権限をリクエストし、その多くがインストール時に警告を表示する場合、ユーザーには次のような警告のリストが表示されます。

インストール時の拡張機能の権限に関する警告

警告が少ない拡張機能や、権限の説明がされている拡張機能は、ユーザーに信頼されやすくなります。オプションの権限またはより強力でない API を実装して、警告が頻繁に表示されないようにすることを検討してください。警告に関するベスト プラクティスについては、権限に関する警告のガイドラインをご覧ください。特定の警告は、権限リファレンス リストで、適用される権限とともにリストされています。

マニフェスト ファイルの "host_permissions" フィールドと "content_scripts.matches" フィールドで一致パターンを追加または変更した場合も、警告が表示されます。詳しくは、権限を更新するをご覧ください。

アクセスを許可

拡張機能が file:// URL で実行される場合やシークレット モードで動作する場合は、ユーザーが詳細ページで拡張機能へのアクセスを許可する必要があります。詳細ページを開く手順については、拡張機能を管理するをご覧ください。

ファイルの URL とシークレット ページへのアクセスを許可する

  1. Chrome で拡張機能アイコンを右クリックします。
  2. [Manage Extension] を選択します。

    拡張機能のコンテキスト メニュー
    拡張機能メニュー
  3. 下にスクロールして、ファイルの URL またはシークレット モードへのアクセスを有効にします。

    拡張機能の詳細ページでファイル URL とシークレット モードを許可する
    ファイル URL とシークレット モードへのアクセスが有効になっています。

ユーザーがアクセスを許可したかどうかを検出するには、extension.isAllowedIncognitoAccess() または extension.isAllowedFileSchemeAccess() を呼び出します。