ほとんどの拡張機能 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 独自の権限に加えてホスト権限が必要です。これについては、各リファレンス ページに記載されています。次に例を示します。
- 拡張機能の Service Worker と拡張機能のページから
fetch()リクエストを行います。 chrome.tabsAPI を使用して、機密性の高いタブのプロパティ(url、title、favIconUrl)を読み取り、クエリします。- コンテンツ スクリプトをプログラムで挿入します。
chrome.webRequestAPI を使用して、ネットワーク リクエストをモニタリングして制御します。chrome.cookiesAPI を使用して Cookie にアクセスします。chrome.declarativeNetRequestAPI を使用して、リクエストとレスポンスのヘッダーをリダイレクトして変更します。
特別なケースでは、ホスト権限は必要ありません。たとえば、次のようなものが挙げられます。
chrome.tabsAPI を使用してタブにアクセスし、タブを変更します。tabs権限がある場合は、タブの URL にもアクセスできます。chrome.debuggerAPI を使用してブラウザを操作します。- マニフェストで宣言されたコンテンツ スクリプトの挿入を許可します。
警告付きの権限
拡張機能が複数の権限をリクエストし、その多くがインストール時に警告を表示する場合、ユーザーには次のような警告のリストが表示されます。

警告が少ない拡張機能や、権限の説明がされている拡張機能は、ユーザーに信頼されやすくなります。オプションの権限またはより強力でない API を実装して、警告が頻繁に表示されないようにすることを検討してください。警告に関するベスト プラクティスについては、権限に関する警告のガイドラインをご覧ください。特定の警告は、権限リファレンス リストで、適用される権限とともにリストされています。
マニフェスト ファイルの "host_permissions" フィールドと "content_scripts.matches" フィールドで一致パターンを追加または変更した場合も、警告が表示されます。詳しくは、権限を更新するをご覧ください。
アクセスを許可
拡張機能が file:// URL で実行される場合やシークレット モードで動作する場合は、ユーザーが詳細ページで拡張機能へのアクセスを許可する必要があります。詳細ページを開く手順については、拡張機能を管理するをご覧ください。
ファイルの URL とシークレット ページへのアクセスを許可する
- Chrome で拡張機能アイコンを右クリックします。
[Manage Extension] を選択します。
拡張機能メニュー 下にスクロールして、ファイルの URL またはシークレット モードへのアクセスを有効にします。
ファイル URL とシークレット モードへのアクセスが有効になっています。
ユーザーがアクセスを許可したかどうかを検出するには、extension.isAllowedIncognitoAccess() または extension.isAllowedFileSchemeAccess() を呼び出します。