Выключаются ли сервис-воркеры iOS Safari из-за перегрева?
Я работаю над расширением iOS Safari, в котором есть ServiceWorker. Недавно мы заметили, что этот ServiceWorker, кажется, убивается случайно, и нет журналов или отчетов о сбоях, которые могли бы рассказать нам, что произошло.
Я предполагаю, что iOS может закрывать Safari ServiceWorkers, когдаProcessInfo.thermalState
подходы.serious
. У меня есть косвенные доказательства того, что нашего ServiceWorker чаще убивают на более высоких уровнях.thermalState
но пока не могу сказать однозначно, что это так. Прямых подтверждений этому в поиске в Интернете я тоже не нашел.
Кто-нибудь может пролить свет на эту тему? Специфическими симптомами являются:
- ServiceWorker останавливается, и пункт меню для его окна консоли больше не отображается в macOS Safari.
- Насколько мы можем судить, нет журналов сбоев через Xcode или Sentry и нет сообщений консоли (предостережение: MobileSafari генерирует МНОГО сообщений! Возможно, мы это пропустили).
- При подключении через отладчик собственная часть нашего расширения просто исчезает, и отладчик теряет соединение без сообщения об ошибке.
- ServiceWorker больше не работает в течение всего времени существования процесса Safari. Иногда, когда мы закрываем Safari и перезапускаем, мы можем вернуть ServiceWorker. Обычно для этого требуется переключить «включенное» состояние нашего расширения в настройках системы.
- В некоторых случаях даже завершение/перезапуск Safari и переключение системных настроек не возвращает наш ServiceWorker. Я сейчас предполагаю, что это происходит, когда тепловое состояние высокое.
Я попытался смоделировать серьезное/критическое тепловое состояние в окне «Устройства Xcode», но не смог воспроизвести проблему ServiceWorker. Однако я не знаю, влияет ли этот параметр на всю систему или только на наши собственные приложения.
Помощь оценена по достоинству!
Юна