将权限移至chrome扩展程序上的可选项

Iva*_*nRF 8 permissions google-chrome google-chrome-extension

我了解到Chrome在严格添加新权限时禁用了扩展程序.

当我向扩展程序添加新功能时,我需要在permissions列表中添加新网站.现在我知道我应该用过optional_permissions.

我的问题是:

  1. 如果我将网站列表从中移动permissionsoptional_permissions用户是否需要再次批准这些网站?或者只是我随着时间推移添加的那些.
  2. 任何这些更改都会导致扩展被禁用吗?:

    一个.我在matches一个条目的部分添加网站content_scripts

    湾 我在matches一个条目的部分添加网站externally_connectable

  3. 有没有一种方法来定义externally_connectableoptional_permissions

相关链接:chrome.permissions | 权限警告


更新:当Chrome停用我的扩展程序后,我在清单中添加了一个网站content_scripts> matchesexternally_connectable一个matches网站.后者在权限警告中显示了一个新行"Communicate with cooperating websites".我不确定哪个改变导致了禁用,这也是我问的原因externally_connectable.

Iva*_*nRF 10

为了测试Chrome停用扩展程序的时间,我在Chrome网上应用店中创建了一个私人扩展程序.

我从一个简单的定义开始,manifest.json然后逐个添加字段和设置.对于每个测试,我:

  1. 将新版本上传到商店
  2. 等待Google发布扩展程序(这需要花费很多时间!)
  3. 强制在测试人员帐户上进行扩展程序更新
  4. 减下结果

经过13次测试,这就是我发现的:


改变了manifestDISABLE扩展名

  • "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"> script-src URL
  • 添加 "web_accessible_resources"

此外,权限列在permission_warnings #newarning docs.

我可能做了一些愚蠢的测试"web_accessible_resources",但我更喜欢让Chrome再次禁用我的扩展程序.


特别测试

由于我要移动optional_permissions,所有列出的主机permissions都将被删除.所以,我想知道当新的更新不再具有有问题的权限时,禁用的扩展会发生什么:

更新1:在"content_scripts"> "matches"=>扩展禁用时添加新主机

更新2:有问题的主机再次"content_scripts"=> Extension ENABLED中删除

总而言之,如果您犯了一个错误,您可以发布新版本,回滚导致扩展被禁用的更改.

如果我将网站列表从中移动permissionsoptional_permissions用户是否需要再次批准这些网站?或者只是我随着时间推移添加的那些.

答案很简单,没有.Chrome会随时间存储为扩展程序提供的所有权限.因此,只optional_permissions需要批准新主机.