"Uncaught (in promise) Error: The 'activeTab' permission is not in effect because this extension



我有<all_urls>主机权限和activeTab权限,但此错误出现在chrome://extensions/上。这是我的清单(删除了不重要的细节(:

{
"action": {
"default_icon": {...},
"default_popup": "...",
"default_title": "..."
},
"author": "...",
"background": {
"service_worker": "./some-js-1.js"
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["./some-js-2.js"]
}],
"description": "...",
"host_permissions": [
"<all_urls>"
],
"icons": {...},
"manifest_version": 3,
"name": "...",
"options_page": "...",
"permissions": [
"activeTab",
"storage",
"tabs"
],
"short_name": "...",
"version": "..."
}

在我的后台脚本(./some-js-1.js(中,这是截屏的代码:

browser.windows.getCurrent().then(function(win){
browser.tabs.captureVisibleTab(win.id,{
"format":"png"
}).then(function(dataURI){
console.log(dataURI);
// do something with it
});
});

它在大多数地方都能工作,但在chrome://extensions/上它不起作用——即使有<all_urls>activeTab权限。

引用文件(重点是我的(,

为了调用此方法,扩展必须具有<all_urls>权限或activeTab权限。除了扩展可以正常访问的网站外,此方法还允许扩展捕获其他受限制的敏感网站,包括chrome:scheme页面、其他扩展的页面和data:URL只有具有activeTab权限才能捕获这些敏感网站只有当扩展名被授予文件访问权限时,才能捕获文件URL。

我有<all_urls>activeTab,但chrome://extensions仍然不可用。当我尝试将<all_urls>放入permissions密钥时,我收到一条警告,上面写着

Permission '<all_urls>' is unknown or URL pattern is malformed.

我把它放在host_permissions中,因为我想访问所有主机,但似乎仍然没有得到权限(或者我做错了什么(。

我该怎么解决这个问题?如果您需要更多信息,请在评论中询问。

您不能在chrome://extensions/<--先前评论

我太草率了,没有把所有的东西都读对。我从未使用过";captureVisibleTab";但我很快阅读了说明书,似乎你已经正确地包含了";activeTab";准许

然而,另一方面,从清单中可以清楚地看出,您希望将脚本注入到每个页面中。

我的建议(可能让你一无所获(是评论";content_ scripts";清单中的部分,然后重新安装扩展,看看是否仍然引发该错误。

此外,我建议您将后台脚本中的captureVisibleTab操作与browserAction单击或上下文菜单项联系起来。

最后,不能排除这个API可能在MV3版本中有一些bug

相关内容

最新更新