@zkrvndm
Софт для автоматизации

Как отключить замедление фоновых вкладок в Firefox?

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

Нельзя ли с этим ничего сделать?
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
@zkrvndm Автор вопроса
Софт для автоматизации
Я нашел решение.

Для начала небольшой ликбез. Мне повезло наткнутся в документации Firefox на следующие строки:

Чтобы уменьшить нагрузку от фоновых вкладок, браузеры устанавливают минимальную задержку таймаута для таймеров в неактивных вкладках.

Особенности реализации здесь зависят от браузера:
  • Firefox Desktop и Chrome имеют минимальное время ожидания 1 секунду для неактивных вкладок.
  • Firefox для Android имеет минимальный таймаут 15 минут для неактивных вкладок и может полностью их выгрузить.
  • Firefox не блокирует неактивные вкладки, если вкладка содержит AudioContext.


То есть если разместить в фоновой вкладке какой-нибудь аудио объект, то таймеры в такой вкладке замедляться не будут. Однако, есть и другое решение. Если мы зайдем в расширение настройки по адресу about:config, то найдем:
dom.min_background_timeout_value 1000
dom.min_background_timeout_value_without_budget_throttling 1000

Достаточно выставить здесь по 4 мс. и таймеры в фоновых вкладках начнут работать так же шустро, как и в активе.
Кстати, я не знаю почему, но вариант с аудио у меня не заработал, а вот изменение значений выше помогло 100%.

Дополнительно, если кому интересно, в Firefox можно тонко регулировать регенерацию таймеров, вот подробности:
https://superuser.com/questions/1500289/how-to-agg...
https://groups.google.com/g/mozilla.dev.platform/c...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы