我正在使用Chrome扩展程序,并希望从localhost
加载脚本以进行开发。所以我更新了清单文件以包含以下行:
"content_security_policy": "script-src 'self' http://localhost; object-src 'self'",
根据Content Security Policy上的文档,在没有localhost
的情况下使用127.0.0.1
或https
完全没问题。
但是,当我尝试从chrome://chrome/extensions/
加载扩展程序时收到以下(嘲讽)错误消息:
无法从'/ Users / Tim / Desktop / temp / test'加载扩展程序。 'content_security_policy'的值无效:必须指定'script-src'和'object-src'指令(显式或隐式地通过'default-src'),并且两者都必须仅将安全资源列入白名单。您可以包含以下任何来源:“'self'”,“'unsafe-eval'”,“http://127.0.0.1”,“http:// localhost”或任何“https://”或“chrome-extension://”来源。有关详细信息,请参阅http://developer.chrome.com/extensions/contentSecurityPolicy.html
要确认问题,您可以使用以下manifest.json
文件创建一个空目录:
{
"name": "Example extension",
"description": "Trying to demonstrate a bug in Chrome",
"version": "0.1",
"homepage_url": "http://example.com",
"content_security_policy": "script-src 'self' http://localhost; object-src 'self'",
"manifest_version": 2
}
并将目录加载为解压缩的扩展名。你应该得到错误。如果您删除http://localhost
或将其更改为https://localhost
,则会正常加载。
我错过了什么吗?
(注意:我使用的是Chrome 22.0.1229.79)
谢谢!
答案 0 :(得分:3)
Chromium revision 151470启用了将localhost
添加到CSP值的功能,该功能位于Chrome 23中(目前位于开发频道,很快就会进入测试频道)。