3

我正在开发 Chrome 扩展程序,并希望从中加载脚本以localhost进行开发。所以我更新了清单文件以具有以下行:

"content_security_policy": "script-src 'self' http://localhost; object-src 'self'",

根据有关内容安全策略的文档,使用localhost127.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)

谢谢!

4

1 回答 1

3

添加localhost到 CSP 值的功能由Chromium 修订版 151470启用,该版本在 Chrome 23 中(目前在开发通道中,很快将在 beta 通道中)。

于 2012-09-29T22:32:21.377 回答