如何在Chrome扩展程序中测试可选权限?

时间:2018-03-04 01:22:53

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

我正在考虑将未发布的Chrome扩展程序中的某些权限移动为可选而非清单中的必需,并且希望测试用户流。

在解压扩展中调用chrome.permissions.request()似乎只是默默地成功。

显示用户应该看到的浏览器对话框。

Chrome developer page建议您可以使用打包的.crx文件测试正常用户流:

  

如果您想确切了解用户会收到哪些警告,请将您的扩展程序打包到.crx文件中,然后安装。

但是,Chrome似乎不再允许您在Chrome网上应用店外安装任意.crx文件。在“扩展”页面上拖放文件会列出该文件,但会禁用已启用复选框。此SO comment表示以这种方式测试权限可能不再可能,但我还没有看到任何关于它的官方文档。

我实际上可以通过使用these instructions将其添加到Windows注册表中的扩展程序白名单来安装和启用非Webstore .crx文件,但该扩展程序没有触发许可请求对话框。

所以我的问题是:

  1. 除了将扩展程序发布到Chrome网上商店之外,有没有办法测试权限请求流
  2. 一旦您接受了可选权限,删除可选权限的最佳方法是什么,以便再次测试流量?删除扩展名?致电chrome.permissions.remove()

1 个答案:

答案 0 :(得分:1)

事实证明,当扩展程序已获得必要的"sessions"权限时,我请求"tabs"权限让我感到困惑。显然,当您已经"sessions"时请求"tabs"并未触发权限对话框。

但是,调用chrome.permissions.request({ permissions: ["bookmarks"] }) 之类的内容实际上显示了权限对话框,即使在解压缩的扩展名中也是如此。

所以答案是:

  1. 无需向Chrome网上应用店发布扩展程序。只需使用您的本地解压缩扩展程序请求可选权限即可查看对话框。

  2. 看起来再次触发权限对话框的唯一方法是完全删除扩展并重新安装。调用chrome.permissions.remove()会尽可能删除API,但如果再次请求,则会以静默方式重新添加权限。