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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Chrome扩展程序中测试可选权限?相关的知识,希望对你有一定的参考价值。

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

在一个解压缩的扩展中调用chrome.permissions.request()似乎只是默默地成功。不显示用户应该看到的浏览器对话框。

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

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

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

我实际上能够通过使用.crx将其添加到Windows注册表中的扩展白名单来安装和启用非Webstore these instructions文件,但该扩展也未触发权限请求对话框。

所以我的问题是:

  1. 除了向Chrome网上应用店发布扩展程序之外,有没有办法测试权限请求流?
  2. 一旦接受了可选权限,删除可选权限的最佳方法是什么,以便再次测试流程?删除扩展名?打电话给chrome.permissions.remove()
答案

事实证明,当扩展已经获得所需的"sessions"权限时,我通过请求"tabs"权限而感到困惑。显然,当你已经拥有"sessions"时请求"tabs"不会触发权限对话框。

但是,实际上,调用像chrome.permissions.request({ permissions: ["bookmarks"] })这样的东西会显示权限对话框,即使在解压缩的扩展名中也是如此。

所以答案是:

  1. 无需向Chrome网上应用店发布扩展程序。只需使用您的本地解压缩扩展程序请求可选权限即可查看对话框。
  2. 看起来再次触发权限对话框的唯一方法是完全删除扩展并重新安装它。调用chrome.permissions.remove()确实会删除API,但是如果再次请求,则会默默重新添加权限。

以上是关于如何在Chrome扩展程序中测试可选权限?的主要内容,如果未能解决你的问题,请参考以下文章

可选权限,以便应用程序可以在所有设备上显示并在某些设备上启用可选功能?

如何使用 adb grant 或 adb revoke?

如何测试已发布的Chrome扩展程序

Chrome扩展程序可捕获formdata并使用此数据填写另一个标签

收集 前端程序员 好用的 Chrome 扩展程序

如何测试 chrome 扩展?