Подтвердить что ты не робот

Политика безопасности контента в приложении Chrome

В моем приложении Chrome есть следующий манифест:

{
    "name": ",
    "version": "1.0.3",
    "manifest_version": 2,
    "description": "Chrome Extension for.",
    "icons": {
        "16": "images/test.png",
        "19": "images/test.png",
        "256": "images/test.png"
    },
    "app": {
        "background": {
            "scripts": [
                "background.js"
            ]
        }
    },

    "sandbox": {
        "js": [
            "lib/test-api.js"
        ]
    },
    "permissions": [
        "<all_urls>",
        "notifications",
        "storage",
        "videoCapture"
    ]
}

У меня есть файл script, который запускает eval. Я прочитал о CSP и песочнице, но я все еще получаю эту ошибку:

Отказался от оценки строки как JavaScript, потому что 'unsafe-eval' не разрешенный источник script в следующем Content Security Директива политики: "default-src" self 'chrome-extension-resource: ". Обратите внимание, что 'script -src' явно не задан, поэтому 'default-src' используется как резерв.

4b9b3361

Ответ 1

Вы пытались добавить строку CSP в свой манифест в соответствии со ссылкой CSP?

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

Ответ 2

То, что вы показываете, не расширение Chrome, но приложение Chrome.
Расширения Chrome позволят вам смягчить политику безопасности контента по умолчанию; Chrome Apps не работает. (источник: Документы CSP для приложений Chrome; примечание: эта страница отличается от Документы CSP для расширений Chrome).

Следующая строка относится к приложениям и расширениям:

  • Политика безопасности содержимого не распространяется на конкретную script, а на целую страницу. Таким образом, вы можете объявить только песочницу для всей страницы (используя sandbox.pages в файле манифеста). Вы не можете использовать "js" в качестве ключа в песочнице.

В расширении Chrome CSP можно расслабить, например. позволяя eval использовать следующую политику:

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

Чтобы превратить ваше приложение в расширение: не используйте клавишу apps, но используйте клавишу background. В следующем манифесте вы сможете использовать eval на своей фоновой странице:

{
    "name": "Whatever",
    "version": "1.0.3",
    "manifest_version": 2,
    "background": {
        "scripts": [
            "background.js"
        ]
    },
    "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}

(пропущено icons/permissions, потому что они не относятся к этому примеру; опустил sandbox, потому что он не нужен)