Google chrome extension 扩展:是否仅使用activeTab权限使用runtime.sendMessage/port.postMessage?

Google chrome extension 扩展:是否仅使用activeTab权限使用runtime.sendMessage/port.postMessage?,google-chrome-extension,permissions,firefox-addon,Google Chrome Extension,Permissions,Firefox Addon,我正在阅读关于扩展和网页之间的信息,我有一个关于权限的问题 我的用例是:我需要与所有网页进行通信,但只与活动网页进行通信。在网页上,当用户单击按钮“[连接我的分机]”时,它会向分机发送一条消息。我现在做的是在所有网页中注入内容脚本: // manifest.json snippet "permissions": ["storage"], "content_scripts": [{ "js": ["content.js"], "matches": ["http://*/*

我正在阅读关于扩展和网页之间的信息,我有一个关于权限的问题

我的用例是:我需要与所有网页进行通信,但只与活动网页进行通信。在网页上,当用户单击按钮“
[连接我的分机]
”时,它会向分机发送一条消息。我现在做的是在所有网页中注入内容脚本:

// manifest.json snippet

  "permissions": ["storage"],
  "content_scripts": [{
    "js": ["content.js"],
    "matches": ["http://*/*", "https://*/*"],
    "run_at": "document_start"
  }],
content.js
在后台执行
chrome.runtime.sendMessage
/
chrome.runtime.onMessage
。它可以工作,但当我发布我的扩展时,Chrome说:

由于以下问题,您的扩展可能需要深入审查:

  • 广泛主机权限
<> >而不是请求广泛的主机权限,请考虑使用 activeTab权限,或指定扩展需要的站点 访问。这两个选项都比允许完全访问更安全 网站数量不确定,它们可能有助于减少审查 时代

activeTab权限允许访问选项卡以响应 明确的用户手势

{   ...   "permissions": ["activeTab"] }
我的问题是:有没有一种方法可以像Chrome建议的那样,只使用
activeTab
来实现我想要的

我最初的理解是,NO.
activeTab
仅被激活,而我需要在网页内的按钮点击时激活它。所以我唯一的希望就是与Chrome的“深度评论”作斗争。是这样吗


谢谢。

您的评估是正确的。
activeTab
无法在您的场景中提供帮助。但是,如果用户单击工具栏中的扩展图标时,您可以提供相同的按钮,那么不清楚为什么您需要在页面中使用该按钮。在我的情况下,它是一个“登录”按钮,我更希望将该登录按钮放在网页中,UX智能。事实上,我发现它令人惊讶。与用户脚本不同,扩展有一个专用的位置来控制和调用它们的UI,因此它们不需要将自己限制在易变的页面UI中。此外,可以在上为扩展分配热键chrome://extensions 页面(请参见API)。
此外,可以在上为扩展分配热键chrome://extensions 第页。
您能详细说明一下吗?它与什么有关?