Chrome 18 Dev / Canary только что выпущен, и content_security_policy
потребуется в манифесте для определенные расширения.
Я пытаюсь заставить CSP работать с встроенными скриптами, но не знаю, делаю ли я что-то не так или это ошибка Chrome 18.
manifest.json:
{
"name": "CSP Test",
"version": "1.0",
"manifest_version": 2,
"options_page": "test.html",
"content_security_policy": "default-src 'unsafe-inline'"
}
test.html:
В Chrome 18 это распакованное расширение не загружается, отображается ошибка:
Если я изменю 'unsafe-inline'
на 'self'
, расширение загружается нормально, но alert ()
не работает, а консоль страницы параметров содержит ошибку:
Отказано в выполнении встроенного скрипта из-за Content- Политика безопасности.
В Chrome 16 использование 'unsafe-inline'
позволяет расширению загружаться нормально, и alert ()
тоже работает. Однако в Chrome 16 замена 'unsafe-inline'
на 'foo'
позволяет загружать расширение, но, конечно, не позволяет alert ()
работать, так что, возможно, Chrome 18 строже, чем 16, но ...
Действительно ли default-src 'unsafe-inline'
недействителен, или это ошибка? Какое значение CSP можно использовать, чтобы заставить alert ()
работать в Chrome 18?
Исходя из принятого ниже ответа, встроенные скрипты больше не работают в расширениях в Chrome 18. alert ()
нужно будет поместить в отдельный файл JavaScript.