我正在使用Chrome擴展程序,並希望從localhost
加載用於開發的腳本。所以,我更新清單文件有以下行:爲什麼Chrome瀏覽器不能通過允許本地主機的內容安全策略加載擴展?
"content_security_policy": "script-src 'self' http://localhost; object-src 'self'",
據對Content Security Policy的文檔,這是完全正常使用localhost
或127.0.0.1
沒有https
。
不過,我得到以下的(辱罵)的錯誤信息,當我嘗試從chrome://chrome/extensions/
加載擴展:
無法加載從「/用戶/添/桌面/溫度/測試」的延伸。 '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)
謝謝!
看來這個例子在Chrome Canary(24.0.1280.0)中運行良好,所以我猜這是一個已修復的錯誤,最終會來到「普通」的Chrome。 –