権限を宣言する

ほとんどの拡張機能の 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 権限に加えてホスト権限が必要になります。この権限は各リファレンス ページに記載されています。以下に例を挙げます。

警告のある権限

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

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

警告が限られている拡張機能や権限に関する説明がある拡張機能は、ユーザーが信頼する可能性が高くなります。警告が発生しないように、オプションの権限またはそれほど強力ではない API の実装を検討してください。警告に関するおすすめの方法については、権限に関する警告のガイドラインをご覧ください。特定の警告は、権限のリファレンス リストに、適用される権限とともに一覧表示されています。

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

アクセスを許可

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

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

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

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

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

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