ActiveTab 権限

activeTab 権限は、拡張機能が現在アクティブなタブへの一時的なアクセス権を ユーザーが拡張機能を呼び出す(例: ブラウザ アクションをクリックする)。タブへのアクセス 有効期間はユーザーがそのページを表示している間に有効で、ユーザーが別のページに移動したりタブを閉じたりすると無効になります。

これは <all_urls> の多くを使用する場合に代替手段として機能しますが、警告メッセージは表示されません インストール中:

注: M72 以降では、ユーザーがactiveTab あります。つまり、ユーザーが https://example.com で拡張機能を呼び出し、 https://example.com/foo に移動すると、拡張機能は引き続きそのページにアクセスできます。もし ユーザーが https://chromium.org にアクセスすると、アクセスが取り消される。

activeTab を使用しない場合:

ActiveTab なし

activeTab の場合:

アクティブタブあり

サンプル拡張機能の Page Redder をご覧ください。

{
  "name": "Page Redder",
  "version": "2.0",
  "permissions": [
    "activeTab"
  ],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "browser_action": {
    "default_title": "Make this page red"
  },
  "manifest_version": 2
}
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
  // No tabs or host permissions needed!
  console.log('Turning ' + tab.url + ' red!');
  chrome.tabs.executeScript({
    code: 'document.body.style.backgroundColor="red"'
  });
});

目的

ブラウザ アクションコンテキスト メニュー項目があるウェブ クリッピング拡張機能について考えてみましょう。この 拡張機能が実際にタブにアクセスする必要があるのは、ブラウザのアクションがクリックされたときか、 コンテキスト メニュー項目が実行されました。

activeTab を使用しなければ、この拡張機能はすべてのウェブサイトへの完全な永続的なアクセスをリクエストする必要があります。 ユーザーによってたまたま呼び出された場合に処理を実行できる状態にしておきます。生成 AI は このようなシンプルな拡張に 任せられる力はありません拡張機能が不正使用されると 拡張機能が持っているすべてのものに アクセスできるようになります

これに対して、activeTab 権限を持つ拡張機能は、 明示的に返すことができます。拡張機能が侵害された場合、攻撃者は ユーザーが拡張機能を呼び出してからアクセスできるようにします。アクセスは、タブが開くまで 閉じられていることを示します。

ActiveTab でできること

タブで activeTab 権限が有効になっている場合、拡張機能は次のことができます。

  • そのタブで tabs.executeScript または tabs.insertCSS を呼び出します。
  • tabs.Tab オブジェクトを返す API を使用して、そのタブの URL、タイトル、ファビコンを取得する (基本的に、activeTabtabs の権限を一時的に付与します)。
  • webRequest を使用して、タブのメインフレーム オリジンへのネットワーク リクエストをインターセプトします。 APIこの拡張機能は、タブのメインフレーム オリジンに対するホスト権限を一時的に取得します。

activeTab の呼び出し中

次のユーザー操作により、activeTab が有効になります。