создание Webextension с помощью parcel и web-ext, какова правильная политика безопасности контента
Parcel поддерживает объединение webextensions: https://v2.parceljs.org/recipes/web-extension/
Команда для настройки сервера сборки и отслеживания изменений:
parcel src/manifest.json --host localhost --target webext-dev
. Это свяжет webextension в папку.
Я бы хотел запустить это расширение с
web-ext run
. Это инструмент от Mozilla, который автоматически загружает Webextension в Firefox и перезагружается при изменениях. Запуск этого в
dist/
Папка должна стать отличной парой с посылкой.
Но на практике связанное с ним webextension не выполняет мои сценарии содержимого. Это потому, что посылка обслуживает их с локального хоста. Нужен флаг
--host localhost
для замены горячего модуля. Но тогда webextension жалуется
"page's settings blocked loading of a resource at ws://localhost:1234/ (“connect-src”)."
В документации по участкам также демонстрируется команда сборки:
parcel build src/manifest.json --target webext-prod
. И если я выполню web-ext run из
dist/webext-prod
Работает как часы. Новый запуск команды сборки участка автоматически запускает перезагрузку webextension. Но это непродуктивно для разработки, так как сборка участков занимает слишком много времени. Я бы хотел использовать его настройку для разработки.
Как я могу правильно настроить политику безопасности содержимого моего webextension, чтобы разрешить сценарии содержимого, загружаемые с localhost?
Пока запись в моем
manifest.json
выглядит так:
"content_security_policy": "connect-src 'self' 'localhost:';",
1 ответ
'localhost:'
имеет неправильный синтаксис, не следует использовать одинарные кавычки и завершающее двоеточие ":". Это просто конкретное имя хоста, такое как доменное имя.localhost
источник обложкиhttp://localhost
а такжеhttps://localhost
(только схемы http / https), но только со стандартными портами .'self'
жетоныws://localhost
а такжеwss://localhost
host-source только в браузерах CSP3 и только со стандартными портами.
Поскольку вы используете нестандартный номер порта, попробуйте:
"content_security_policy": "connect-src 'self' ws://localhost:1234;"