[英]content security policy issue with chrome extension
尝试通过Chrome扩展应用程序中的javascript在'iframe'中加载不同的内容(可以是pdf,swf等)。 使用数据URL方案加载内容:
//这个javascript在html文件中注册,只需点击一下按钮就可以在DOMContentLoaded事件中注册LoadFunction。
void LoadFunction()
{
window.parent.document.getElementById("page_data").src = 'data:application/pdf;base64,' + 'base64 encoded data'; (base64 data is received from a c++ class)
}
但是一旦调用上述函数,就会引发内容安全策略错误:
拒绝从'data:application / pdf; base64,JVBERi0xLjQNCiXi48 / TDQoxIDAgb2JqDQo8PA0KL1R5cGU ... mRvYmoNCjkgMCBvYmoNCjw8DQovVHlwZSAvRm9udA0KL1N1YnR5cGUgL1R5cGUxDQovQmFzZUZ'加载插件数据,因为它违反了以下内容安全策略指令:“default-src'self'
但令人惊讶的是,当数据URL更改为:'data:image / png; base64,'+'base64 encoded data'时,不会引发此错误。 并且图像成功加载到iframe中。
据我所知,只有当内联代码直接执行到html文件中时才会引发此错误,但这不是这种情况,如果是这种情况,那么为什么它不会引发图像文件。
另外,如果我尝试将manifest.json文件中的内容安全策略设置为:“content_security_policy”:“script-src'self'; object-src'self'; frame-src'self'data:”
然后错误变为: 拒绝从'data:application / pdf; base64'加载插件数据,因为它违反了以下内容安全策略指令:“object-src'self'
所以可能需要设置object-src,但不确定它应该是什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.