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

时间:2017-05-25 17:27:43

标签: google-chrome google-chrome-extension permissions

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

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

我的问题是:

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

    一个。我在matches

    中的条目的content_scripts部分添加了网站

    湾我在matches

  3. 中的条目的externally_connectable部分添加了网站
  4. 有没有办法在externally_connectable中定义optional_permissions

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

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

2 个答案:

答案 0 :(得分:8)

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

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

  1. 将新版本上传到商店
  2. 等待Google发布扩展程序(这需要花费很多时间!)
  3. 强制对测试人员帐户进行扩展程序更新
  4. 写下结果
  5. 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"> script-src URL
    • 添加"web_accessible_resources"

    另外,permission_warnings#nowarning文档中列出的权限。

    我可能做过像"web_accessible_resources"这样的愚蠢测试,但我更喜欢让Chrome再次禁用我的扩展程序。

    特殊测试

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

    更新1:在"content_scripts">处添加新主机"matches" =>延期禁用

    更新2:有问题的主机已从"content_scripts" =>中删除再次启用扩展程序

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

      

    如果我将网站列表从permissions移至optional_permissions,用户是否需要再次批准这些网站?或者只是我随着时间推移而添加的那些。

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

答案 1 :(得分:1)

  
      
  1. 如果我将网站的列表从权限移动到optional_permissions,用户是否需要再次批准这些网站?或者只是我随着时间的推移添加的那些。
  2.   

新用户:是的,他们需要批准它。

更新的现有安装:很可能没有。

考虑一下:即使您完全删除了权限,然后再将其重新置之,它仍然被视为已授予权限。

一般文档引用是:“Chrome会提示用户,如果添加权限会产生与用户已经看到和接受的不同的警告消息。”

  
      
  1. 是否有任何这些更改都会导致扩展程序被禁用?:

         

    一个。我在matches

    中的条目的content_scripts部分添加了网站      

    湾我在matches

  2. 中的条目的externally_connectable部分添加了网站   

一个。向content_scripts添加匹配等同于提供完整的主机权限,并且如果它是新主机,则会导致您的扩展被禁用。如果您已拥有该主机的主机权限,则不会禁用该主机。

湾我不知道。理论上,这不会授予您的扩展任何新权限,因此不应该。

  
      
  1. 有没有办法在optional_permissions中定义external_connectable?
  2.   

根据文档,没有。这不是开始的许可。