宣言版本 2 和他的新content_security_policy现在是 chrome 扩展所必需的。我阅读了一些关于"沙盒模式"的文档,这似乎是内联 javascript 的解决方法,但我仍然有一个大问题。
经过一些重构,我得到了以下错误:"不安全的JavaScript试图从带有URL chrome-extension://mafcgphdkdbjlngfndodameheehmfhac/DCE24DB153A80B735442BF97F168AE6C.cache.html 的框架访问带有URL铬 extension://mafcgphdkdbjlngfndodameheehmfhac/eventpage.html 的框架。域、协议和端口必须匹配。
我不明白为什么来自同一扩展名的 2 个文件没有相同的"域、协议和端口"!
注意:这是我宣言的一部分:
"permissions": [
"http://*/",
"tabs"
],
"background": {
"page": "eventpage.html",
"persistent": false
},
"sandbox": {
"pages": [
"sandbox.html",
"DCE24DB153A80B735442BF97F168AE6C.cache.html"
]
}
...
允许沙盒页面绕过扩展的内容安全策略,部分原因是沙盒会强制它们进入唯一的源。他们无权访问扩展的特殊 API,也无法获取其数据。
http://developer.chrome.com/trunk/extensions/sandboxingEval.html 提供了我们建议你用于沙盒页面的工作流程的说明。简而言之,您需要将帧与其父帧之间的直接访问替换为基于postMessage
的通信。