google-chrome-extension - 为什么 Chrome 不使用允许localhost的内容安全策略加载扩展?

  显示原文与译文双语对照的内容

我正在处理 Chrome 扩展,并希望从 localhost 加载脚本以进行开发。 因此,我更新了清单文件以获得以下行:


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



根据内容安全策略的文档,使用 localhost 或者 127.0.0.1 没有 https 是非常不错的。

但是,当尝试从 chrome://chrome/extensions/ 加载扩展时,会收到以下( taunting ) 错误消息:

无法从'/Users/Tim/Desktop/temp/test'. 加载扩展名'content_security_policy'的值无效: '脚本 src'和'对象 src'指令必须指定为( 显式地或者隐式地通过'默认的,并且两者都必须只限于安全资源。 你可以包括以下任何来源: "'自我',"'不安全评估'","http://127.0.0.1""http://localhost", 或者任何"https://" 或者"chrome-extension://" 源。 有关更多信息,请参见 http://developer.chrome.com/extensions/contentSecurityPolicy.html

要确认这里问题,可以创建一个包含以下 manifest.json file:的空目录


{


"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,它将很好地加载。

好像少了点什么?

( NB: 我正在使用 Chrome 22.0.122 9.79 )

谢谢!

时间: 原作者:

...