activeTab 权限

activeTab 权限使应用在用户调用应用(例如单击浏览器按钮)时能够临时访问当前活动的标签页,对标签页的访问将一直持续到标签页导航或关闭。

在很多情况下,它可以代替 <all_urls>,在安装过程中不显示警告消息

没有 activeTab 时 使用 activeTab 后

例子

{
  "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,该应用将需要请求对每一个网站完整、持续的访问,以便碰巧用户调用时完成它的工作。对于这样一个简单的应用来说用户信任并提供了太多权限,如果该应用遭到攻击,攻击者可以访问该应用拥有的所有权限。

相反,使用 activeTab 权限的应用只需要在响应用户显式操作时才需要获得标签页的访问权限。如果应用受到攻击,攻击者在获得访问之前需要等待用户调用应用,并且访问权限仅持续至标签页导航或关闭前。

activeTab 允许哪些操作

activeTab 权限为某个标签页启用时,应用可以:

调用 activeTab

如下用户操作启用 activeTab: