我正在开发 Chrome 扩展程序,并希望从中加载脚本以localhost
进行开发。所以我更新了清单文件以具有以下行:
"content_security_policy": "script-src 'self' http://localhost; object-src 'self'",
根据有关内容安全策略的文档,使用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)
谢谢!