“activeTab”权限

"activeTab" 权限允许扩展程序在 用户调用该扩展程序 - 例如,点击其操作。访问该标签页 有效期在用户位于相应页面时有效,在用户离开页面或关闭标签页时失效。 例如,如果用户通过 https://example.com 调用扩展程序,然后 转到 https://example.com/foo,该扩展程序仍能继续访问该网页。如果 当用户前往 https://chromium.org 时,相关访问权限会被撤消。

这是 "<all_urls>" 的多种用法,但会显示无警告消息。 :

不使用 "activeTab" 时:

无 activityTab

以及 "activeTab"

使用 activityTab

示例

请参阅 Page Redder 扩展程序示例:

manifest.json:

{   "name": "Page Redder",   "version": "2.0",   "permissions": [     "activeTab",     "scripting"   ],   "background": {     "service_worker": "service-worker.js"   },   "action": {     "default_title": "Make this page red"   },   "manifest_version": 3 } 

service-worker

function reddenPage() {   document.body.style.backgroundColor = 'red'; }  chrome.action.onClicked.addListener((tab) => {   if (!tab.url.includes('chrome://')) {     chrome.scripting.executeScript({       target: { tabId: tab.id },       func: reddenPage     });   } }); 

设计初衷

假设有一个包含操作上下文菜单项的网页剪辑扩展程序。这个 可能只需要在用户点击其操作或 。

如果没有 "activeTab",此扩展程序将需要请求对每个网站的完整、永久访问权限, 这样,在用户调用它时,它就可以正常运行。这里有很多 如果扩展程序遭到入侵,攻击者 获取该扩展程序拥有的所有内容

相比之下,具有 "activeTab" 权限的扩展程序仅在响应时获取对标签页的访问权限 显式用户手势。如果扩展程序遭到入侵,攻击者将需要等待 用户在获得访问权限之前调用该扩展程序。并且该访问权限仅在相应标签页 已导航或已关闭。

什么是“activeTab”允许

为标签页启用 "activeTab" 权限后,扩展程序可以:

调用 activityTab

以下用户手势可启用 "activeTab" 权限: