我正在开发一个模块化扩展,可以通过其他扩展进行扩展。我正在寻找一种方法来读取扩展的manifest.json或者自定义文件,比如widgets.json。
即使获得了<all_urls>
权限,我也尝试了this,但不幸的是遇到了这个错误:
XMLHttpRequest cannot load chrome-extension://aknpkdffaafgjchaibgeefbgmgeghloj/manifest.json. Cross origin requests are only supported for HTTP.
还有其他方法可以在扩展程序之间交换小而简单的数据位吗?我目前正在使用chrome.extension.sendRequest
,但这证明是对background.html内存的征税。此外,它还使托管应用程序无法在其应用程序中嵌入小部件。
我非常感谢任何帮助。
注意:我也意识到jsonp是一个选项,但我宁愿不接受。恶意扩展可能很容易导致漏洞。
答案 0 :(得分:3)
恶意扩展可能很容易导致漏洞。
这正是为什么Chrome不允许一个分机查看另一个花园的原因。
所以不,Chromium不支持这一点。您有几种选择:
提交实施“扩展点”的增强请求,该扩展点允许不同的扩展程序相互通信而无需额外的外部服务器。
在构建时共享数据:创建一个包含共享数据的框架扩展,并使用相同的框架构建所有“子”扩展。这意味着您必须同时部署所有扩展,并且它不允许您的扩展交换运行时数据,但它可能有所帮助。
创建一个外部服务器,允许所有扩展程序相互通信。可能不太现实,只是为了完整起见。