0

我开发了一个与 IP 电话通信的 chrome 扩展程序。

通信是在通过XMLHttpRequest对象发送 POST 请求的事件页面中完成的。

因为电话的主机名或 IP 地址是在选项页面中配置的,所以我添加optional_permissions到清单文件中,并在保存选项后向用户请求它们chrome.permissions.request

Cross-Origin XHR 现在可以正常工作,直到我重新启动 chrome ......

重新启动 chrome 后,似乎请求的权限丢失了,我得到了典型的 is not allowed by Access-Control-Allow-Origin错误。

当我点击扩展权限时,我还可以看到我请求的权限不再列出。

因为chrome.permissions.request它仅适用于用户手势,所以我无法在加载我的扩展程序期间或在运行时请求它。如果我在我的选项页面中再次请求许可,我不会再被问到我是否要允许它授予许可并且一切都照常工作。

有没有办法在请求后永久授予此权限?我只希望扩展能够访问它需要的端点。

非常感谢。

4

1 回答 1

3

对我来说,以下报告的问题回答了我的问题: Issue 158004: chrome.permissions.request support for user-supplied URL

明确一点:不可能请求optional_permissions. 如果你定义http://*/*了,那么你需要准确地请求这个字符串!像http://example.org/*不会工作的子集!

这是问题描述中注释的引用,它清楚地说明了这一点: “没有通配符处理,只是 URLPatterns 之间的纯字符串比较”

该问题已在修订版 182287中得到修复

剩下的唯一一件事就是祈祷这个修复程序很快就会包含在即将发布的 chrome 版本中。与此同时,我们将不得不使用该死的Access your data on all websites许可。

于 2013-08-05T10:10:49.550 回答