#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. Спасибо!