google-chrome - 将权限移动到 chrome 扩展上的可选权限

标签 google-chrome google-chrome-extension permissions

我了解到 Chrome 在添加新权限时会禁用扩展程序。

当我向我的扩展添加新功能时,我需要在 permissions 中添加新站点列表。现在我知道我应该使用 optional_permissions .

我的问题是:

  • 如果我从 permissions 移动站点列表至optional_permissions用户是否需要再次批准这些网站?或者只是我随着时间的推移添加的那些。
  • 这些更改中的任何一个是否会导致扩展被禁用?:

    一种。我在 matches 中添加网站content_scripts 中条目的部分

    湾。我在 matches 中添加网站externally_connectable 中条目的部分
  • 有没有办法定义externally_connectableoptional_permissions ?

  • 相关链接:chrome.permissions | Permission Warnings

    更新:当 Chrome 禁用我的扩展时,我在 list 中添加了一个站点 content_scripts > matchesexternally_connectablematches地点。后者在权限警告中显示一个新行,说 "Communicate with cooperating websites" .我不确定哪个更改导致禁用,这就是我询问 externally_connectable 的原因也。

    最佳答案

    为了测试当 Chrome 禁用扩展时 我在 Chrome 网上应用店中创建了一个私有(private)扩展程序。

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

  • 将新版本上传到商店
  • 等待 Google 发布扩展(这花了很多时间!)
  • 强制对测试人员的帐户进行扩展更新
  • 记下结果

  • 之后 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 to optional_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/

    相关文章:

    javascript - 将信息从网站传递到 chrome 扩展程序

    javascript - 我如何使用js截屏并上传图片?

    apache - at 命令在 ubuntu apache 错误 'You do not have permission to use at'

    html - 我在 Google Chrome 中的文字阴影出现了什么问题?

    python - Chrome headless 忽略系统代理

    macos - 选项卡关闭时不显示 Web 推送通知

    google-chrome - Chrome 版本 90 - 输入类型时间

    javascript - 如何通过 Chrome 扩展本身获取用户反馈/错误报告?

    mysql - 允许远程 MySQL 连接

    java - Spring MVC Web 应用程序 - 银行应用程序的权限机制