【发布时间】:2014-05-08 19:44:50
【问题描述】:
我正在开发一个 Firefox 插件,它涉及从网络上的任意图像读取像素图像数据。
对于 Chrome、Safari 和 Opera,这就像在后台页面的画布上加载图像一样简单(getImageData 有效并且忽略同源限制)。但在 Firefox 上,使用附加 SDK 创建 "trusted" page-worker 并在从任意 URL 加载的图像上调用 getImageData 会产生安全错误。
- message = The operation is insecure.
- name = SecurityError
- result = 2152923154
我一直在翻阅 Add-on SDK 和其他 StackOverflow 答案的文档,似乎内容脚本通常仍受同源策略的约束。 PrivilegeManager/enablePrivilege(我什至不确定这是否相关)似乎已被弃用。
我目前能想象的唯一方法是低级 net/xhr XMLHttpRequest API,请求类型为 Blob,并使用 createObjectURL 加载图像。但这似乎有点不必要地令人费解,当我觉得应该有某种方法来调用 getImageData 而不会在特权上下文中遇到同源策略。
【问题讨论】:
标签: javascript firefox canvas firefox-addon firefox-addon-sdk