Я нашел решение.
Для начала небольшой ликбез. Мне повезло наткнутся
в документации 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...