После некоторых потрясений мне наконец-то удалось web-ext
открыть страницу со схемой moz-extension
при запуске браузера.
Единственный способ (который я нашел) открыть эту страницу с контекстом расширения (и правильно проверить страницу), а не как обычный file://
, это использовать URI типа moz-extension://<internal UUID>/path/to/extension/page/from/extension/root
для доступа к ней.
Проблема заключается в том, что как временное расширение у него всегда есть другой UUID, который не сохраняется между переустановками, поэтому нет способа сказать web-ext
открыть страницу расширения через -u
при использовании значений по умолчанию. .
Здесь появляется эта полезная документация . Здесь упоминается опция extensions.webextensions.keepUuidOnUninstall
в about:config
, которая именно это и делает. Таким образом, необходимо создать профиль с этой опцией true
и использовать с опцией web-ext
-p
.
Следующая проблема, с которой я столкнулся, заключалась в том, что страница молча не открывалась. Судя по всему, Firefox пытался открыть страницу до того, как расширение было установлено. Но у web-ext
есть опция --pre-install
, которая делает расширение (и его страницы) доступным при запуске, поэтому, когда оно включено, страница действительно открывается. Предостережение 1 заключается в том, что для использования --pre-install
требуется, чтобы расширение имело ID (это не упомянутый UUID, сгенерированный Firefox), которое должно быть установлено в manifest.json
. Предупреждение 2, --pre-install
отключает автоматическую перезагрузку расширения при изменении файла.
Итак, мое окончательное решение было:
С помощью firefox --manageProfiles
создайте отдельный профиль для проверки моего расширения
Перейдите к установке и сохранению флага extensions.webextensions.keepUuidOnUninstall
about:config
(сделайте это без web-ext
или с --keep-profile-changes
в противном случае)
В manifest.json
добавить идентификатор для расширения:
"applications": {
"gecko": {
"id": "addon@example.com"
}
}
Выполнить
web-ext run -p <testing profile name> --pre-install -u moz-extension://<extension UUID>/path/to/extension/page.html
Запускает Firefox с временной установкой вашего расширения и открывает нужную страницу.
Если вы знаете лучшее решение (например, такое, которое не отключает автоматическую перезагрузку), ваш ответ очень приветствуется.