Chrome версии 18+: как разрешить встроенные сценарии с политикой безопасности содержимого?

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 это распакованное расширение не загружается, отображается ошибка:

Could not load extension from '[extension directory]'. Invalid value for 'content_security_policy'.

Если я изменю '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.

30
задан Anjum.... 24 October 2019 в 13:18
поделиться