setInterval неправильно работает в веб-расширении safari

#safari #safari-extension #browser-extension #safari-web-inspector #safari-web-extension

Вопрос:

Недавно я перенес расширение chrome в safari с помощью конвертера веб-расширений safari: https://developer.apple.com/documentation/safariservices/safari_web_extensions/converting_a_web_extension_for_safari.

Однако я обнаружил, что мои вызовы setInterval выполняются только определенное количество раз на фоновой странице. Когда я открываю фоновую страницу для своего веб-расширения, я попытался запустить простой интервал, чтобы увидеть результат:

Фоновая страница веб-расширения Safari с интервалом, зависшим после запуска заданное количество раз

Когда я пытаюсь сделать то же самое для своего веб-расширения chrome, интервал длится бесконечно:

Фоновая страница веб-расширения Chrome с непрерывным интервалом

Если я попытаюсь запустить интервал после открытия консоли разработчика для любой случайной веб-страницы в Safari, интервал будет работать нормально:

Страница содержимого Safari с непрерывным интервалом

Аналогично, рекурсивная функция setTimeout завершается сбоем на фоновой странице веб-расширения:

Рекурсивная функция setTimeout на моей фоновой странице
Результат рекурсивной функции тайм-аута набора на моей фоновой странице (впоследствии останавливается)

Я не уверен, почему таймеры могут не работать на фоновой странице Safari. Мое расширение отлично работает в chrome/brave/firefox. Спасибо!