我正在考虑将未发布的Chrome扩展程序中的某些权限移动为可选而非清单中的必需,并且希望测试用户流。
在一个解压缩的扩展中调用chrome.permissions.request()
似乎只是默默地成功。不显示用户应该看到的浏览器对话框。
这个Chrome developer page建议您可以使用打包的.crx
文件测试正常的用户流:
如果您想确切了解用户将获得哪些警告,请将您的扩展程序打包到.crx文件中,然后进行安装。
但是,Chrome似乎不再允许您在Chrome网上应用店外安装任意.crx
文件。在“扩展”页面上拖放文件会列出该文件,但会禁用“已启用”复选框。这个SO comment表明以这种方式测试权限可能不再可能,但我还没有看到任何关于它的官方文档。
我实际上能够通过使用.crx
将其添加到Windows注册表中的扩展白名单来安装和启用非Webstore these instructions文件,但该扩展也未触发权限请求对话框。
所以我的问题是:
chrome.permissions.remove()
?事实证明,当扩展已经获得所需的"sessions"
权限时,我通过请求"tabs"
权限而感到困惑。显然,当你已经拥有"sessions"
时请求"tabs"
不会触发权限对话框。
但是,实际上,调用像chrome.permissions.request({ permissions: ["bookmarks"] })
这样的东西会显示权限对话框,即使在解压缩的扩展名中也是如此。
所以答案是:
chrome.permissions.remove()
确实会删除API,但是如果再次请求,则会默默重新添加权限。