Добрый день.

Возникла проблема, которую не удается решить самостоятельно.
Я создал расширение для браузера Mozilla Firefox, которое блокирует запросы на определенные сайты. Код расширения можно увидеть здесь:
https://discourse.mozilla.org/t/is-ther … link/45992

В качестве тестовой ссылки использую:
http://www.example.com

Если браузер Mozilla Firefox запущен и пытаться перейти по тестовой ссылке, то запрос блокируется, как и ожидалось.
Однако, если настроить браузер Mozilla Firefox по-умолчанию для запуска http-ссылок и попытаться перейти по тестовой ссылке, когда браузер закрыт,
то блокировка ссылки происходит не всегда. Т.е., я нажимаю ссылку, далее запускается браузер, далее в новой вкладке я вижу загруженную страницу
тестовой ссылки.

Ключ persistent из скрипта background проблему не решает.
Аналогичная ситуация возникает, если запускать ссылки с браузером из командой строки, как например здесь:
https://discourse.mozilla.org/t/onbefor … ions/33557

После многократных запусков ссылок возникла мысль, что расширение при запуске браузера не успевает загрузиться перед отправкой запроса, и по этой причине запрос не блокируется. Тем не менее, самостоятельно не нашел информации: в каком порядке загружаются расширения и обрабатываются стартовые запросы (т.е. запросы на ссылки, указанные при старте браузера)? существует ли такой порядок, или операции выполняются независимо? Однако в документации по background сказано: "Фоновые сценарии - это место для размещения кода, который должен поддерживать долгосрочное состояние или выполнять долгосрочные операции, независимо от времени жизни каких-либо конкретных веб-страниц или окон браузера.", ссылка:
https://developer.mozilla.org/ru/docs/M … background

Может быть кто то сможет подсказать или разъяснить проблему, добиться стабильной блокировки любых запросов при запуске браузера по ссылке.

PavelSha пишет

После многократных запусков ссылок возникла мысль, что расширение при запуске браузера не успевает загрузиться перед отправкой запроса, и по этой причине запрос не блокируется.

Так и есть. Эту же ситуацию легко проследить и на работе известных дополнений, таких как uBlock, например.
Особенно наглядно сие видно на слабых/древних железяках.

PavelSha пишет

Может быть кто то сможет подсказать или разъяснить проблему, добиться стабильной блокировки любых запросов при запуске браузера по ссылке.

Возвращаясь к слабым машинам — можно встретит ситуацию, когда при загрузке двух (или более) сайтов на одних сайтах блокировка срабатывает, а на других — нет (или частично).
На нормальном компьютере такое вряд ли встретится.
Работа дополнений и демонстрация веб-страниц происходят в отдельных процессах, не значит ли что они выполняются параллельно?

На нормальном компьютере такое вряд ли встретится.

К сожалению, такое повторяется. Используется современный ПК, операционная система - MS Windows 10.
Частота появлений, по личным наблюдениям, зависит от размера расширения. И если на ссылках с выходом в Интернет, воспроизводится намного реже, то, например, для ссылок корпоративной сети - очень часто, буквально через раз.

Работа дополнений и демонстрация веб-страниц происходят в отдельных процессах

Конечно, может быть это и хорошо, что они выполняются параллельно. Но тогда выходит, что на этапе выполнения этих процессов механизм блокировки работает некорректно, и мне через расширение и какие то внешние механизмы никак не удастся контролировать перехват ссылок. При желании, эти параллельные процессы можно контролировать, и, если нужно, сначала загрузить расширение, потом остальное. Разработчики браузера, вряд ли, оставили это без внимания.

PavelSha
Попробуйте
extensions.webextensions.background-delayed-startup = false
это отключает задержку запуска расширений после старта браузера

AlAvis, ключ настроил, но реального эффекта не увидел. Хотя параметр выглядит многообещающим.

Нашел похожую проблему на странице https://bugzilla.mozilla.org/show_bug.cgi?id=1378459, которая на данный момент не разрешена. Остается ждать, когда исправят, а пока искать обходные пути решения.

Спасибо за наводку!

пока так и не было решения проблемы, как понимаю:angry: