我正在开发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 版本)
谢谢!