Safari (iOS) показывает пустые страницы на экземплярах Discourse после бета-версии 8 из-за ручного отключения IntersectionObserver

Последняя сборка (2.7.0.beta8 f002c58a30) отображает пустую веб-страницу на мобильных устройствах с iOS в Safari.

Проблему можно воспроизвести и на экземпляре Meta.

Более старая сборка, которую я использую, всё ещё работает.

РЕДАКТИРОВАНИЕ: Решение здесь :grinning_face:

Не могу воспроизвести ни в meta, ни на моем инстансе.

Странно

Перезагрузил и очистил кэш и т. д.

iOS 14.4 — iPhone 12 Pro.
Та же версия и та же проблема на iPhone 11.

Надеюсь, здесь появится больше отзывов.

У меня на Xs с 14.5.1 проблема не воспроизводится.

У вас включены какие-либо блокировщики контента?

Я проверил, и они все выключены.

Я только что обновился до последней версии iOS, проблема осталась.

Продолжу искать…

Не удалось воспроизвести на:
iPhone 6s iOS 13.7
iPhone 7 Plus iOS 14.4.2
iPhone SE iOS 14.4.2

Если проблема проявляется на нескольких устройствах, возможно, дело в маршруте сети.

Возникает ли она и в Wi-Fi, и в мобильной сети?

Если я отключаю JavaScript, я получаю очень простую версию meta. Когда я включаю его обратно, страница перезагружается и показывает пустое поле.

Я пробовал VPN, мобильную сеть и Wi-Fi.

iPhone 11 Pro, iOS 14.4
iPhone 12 Pro, iOS 14.5.1

Проблем нет в Chrome или браузере Brave.

Очень надеюсь, что кто-то сможет воспроизвести эту проблему.

У меня есть один сервер на последней бета-версии 8. Он не работает (включая meta).

Два сервера работают на бета-версии 7. Они функционируют нормально.

Я могу обновить один из них с версии 7 до 8 и посмотреть, перестанет ли он тоже работать.

Попробуйте запустить Meta в безопасном режиме. У вас это работает?

https://meta.discourse.org/safe-mode

Страница в безопасном режиме работает, но при включении безопасного режима отображается та же пустая страница.

В логе появилось сообщение при обновлении любой страницы в Safari.

ReferenceError: Can't find variable: IntersectionObserver
Url: https://domain.com/assets/ember_jquery-36a23101c869ab0dc53fc908de69adb785731593573d32bdeef416acc1076ef4.js
Line: 26
Column: 28177
Window Location: https://domain.com/login

Хм, @blake / @pmusaraj, я думал, что на iOS 14 это не было проблемой. Может, стоит откатить удаление полифила для IE? Похоже, что iOS всё ещё иногда его требует.

Caniuse показывает, что API IntersectionObserver был добавлен в iOS 12.2 в марте 2019 года.

Если эти тесты проводились также на iOS, то это подтверждает, что всё должно работать — все браузеры на iOS используют WebKit под капотом.

@MarcP, не отключали ли вы случайно IntersectionObserver в Настройки > Safari > Дополнительно > Экспериментальные функции? По умолчанию он должен быть включён. (см. заметки о выпуске Safari Technology Preview 71)

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

Ещё раз спасибо этому сообществу за быстрое решение.

У меня как раз был пользователь форума с такой проблемой. Он отключил экспериментальные функции где-то раньше, но не знал, как и когда… но это снова заставило его работать, так что спасибо за эту тему!