我了解到 Chrome 在添加新权限时会禁用扩展程序。
当我向我的扩展添加新功能时,我需要在 permissions
中添加新站点列表。现在我知道我应该使用 optional_permissions
.
我的问题是:
permissions
移动站点列表至optional_permissions
用户是否需要再次批准这些网站?或者只是我随着时间的推移添加的那些。 一种。我在
matches
中添加网站content_scripts
中条目的部分湾。我在
matches
中添加网站externally_connectable
中条目的部分externally_connectable
在 optional_permissions
? 相关链接:chrome.permissions | Permission Warnings
更新:当 Chrome 禁用我的扩展时,我在 list 中添加了一个站点
content_scripts
> matches
和 externally_connectable
与 matches
地点。后者在权限警告中显示一个新行,说 "Communicate with cooperating websites"
.我不确定哪个更改导致禁用,这就是我询问 externally_connectable
的原因也。
最佳答案
为了测试当 Chrome 禁用扩展时 我在 Chrome 网上应用店中创建了一个私有(private)扩展程序。
我从 manifest.json
的简单定义开始。然后我一一添加字段和设置。对于每个测试,我:
之后 13 次测试 ,这是我发现的:
manifest
的变化禁用扩展"content_scripts"
添加一个条目> "matches"
[警告:“在 example.com 上读取和更改您的数据”] "externally_connectable"
> {"ids", "matches"}
[警告:“与合作网站沟通”] manifest
的变化没有禁用扩展(没有警告)"declarativeContent"
权限 "optional_permissions"
> 所有主机"externally_connectable"
添加一个条目> "ids"
(在 externally_connectable
被接受后)"externally_connectable"
添加一个条目> "matches"
(在 externally_connectable
被接受后)"externally_connectable"
添加一个没有权限的主机条目> "matches"
(在 externally_connectable
被接受后)"incognito": "split"
"content_security_policy"
> 脚本-src URL "web_accessible_resources"
另外,permission_warnings#nowarning 中列出的权限文档。
我可能做了一些愚蠢的测试,比如
"web_accessible_resources"
,但我更喜欢让 Chrome 再次禁用我的扩展程序。特殊测试
因为我要搬到
optional_permissions
, permissions
中列出的所有主机被删除。因此,我想知道当新更新不再具有有问题的权限时,禁用的扩展会发生什么:更新 1:在
"content_scripts"
添加了一个新主机> "matches"
=> 扩展禁用更新 2:有问题的主机已从
"content_scripts"
中删除=> 扩展再次启用 总而言之,如果你犯了一个错误,你可以发布一个新版本,回滚导致扩展被禁用的更改 .
If I move the site's list from
permissions
tooptional_permissions
does the user need to approve those sites again? or just the ones that I add over time.
答案很简单,不会。随着时间的推移,Chrome 会存储授予扩展程序的所有权限。所以,只有
optional_permissions
上的新主机需要得到批准。
关于google-chrome - 将权限移动到 chrome 扩展上的可选权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44186404/