Discourse не работает/не загружается в браузерах игровых консолей?

Некоторые пользователи, которые просматривают наш форум на консоли Xbox One, недавно начали получать пустую страницу. Ранее они могли просматривать форумы без проблем.

Я проверил на консоли Xbox Series X с помощью браузера Edge и лёгкого браузера C, и могу подтвердить это. Также я попытался зайти на другие форумы Discourse, но они тоже не загружаются. Даже meta.discourse.org не открывается.

Один из наших участников пытался загрузить форумы на консоли PlayStation 4, но тоже без успеха.

Есть ли какие-то идеи, почему Discourse не загружается на консолях?

3 лайка

Это проблема с версией Microsoft Edge на движке EdgeHTML (которая больше не поддерживается). Посоветуйте пользователям обновить свои приложения. Только представить, насколько сложно просматривать сообщество Discourse на игровой приставке.

Однако есть и хорошая новость.

4 лайка

Мы, безусловно, должны отображать HTML-версию, а не пустую страницу. Видят ли ваши пользователи пустую или белую страницу?

cc @dan

5 лайков

Да, пустая страница. Во вкладке браузера можно увидеть, какой форум вы посещаете, но сама страница пуста. На одном из посещенных форумов используется фоновое изображение для форума, и оно загружается, но сам Discourse — нет.

Я попробовал почти все доступные браузеры, которые можно загрузить из Microsoft Store на консоль, и результат тот же.

4 лайка

У Discourse есть два способа определения «неподдерживаемых браузеров» — браузеров, которые не реализуют все API, необходимые для корректной работы Discourse.

Первый метод реализован на JavaScript и позволяет браузеру самостоятельно определить, что он не может отобразить страницу, автоматически переключаясь на статическое HTML-представление. В идеале так и должно было произойти, однако в браузерах игровых консолей есть какая-то особенность (пока неизвестная мне), из-за которой этот код не выполняется, и в результате отображается пустая страница.

Второй метод работает на стороне сервера, был специально реализован для таких ситуаций и принудительно отображает статическое HTML-представление при обнаружении определённых пользовательских агентов. Этот метод использует скрытую настройку сайта, которую можно обновить через консоль Rails.

Думаю, это решит вашу проблему. Чтобы запустить консоль, подключитесь к серверу по SSH и выполните:

cd /var/discourse
./launcher enter app
rails c

Чтобы обновить скрытую настройку сайта, введите:

SiteSetting.browser_update_user_agents = "#{SiteSetting.browser_update_user_agents}|Xbox|PlayStation"
5 лайков

Следующее крупное обновление для консолей Xbox Series, как показано в видео выше, должно перейти на Chromium Edge, поэтому, если вы добавите туда только Xbox, это будет немного некорректным определением. Trident/ или Edge/ (новое Edge использует ‘Edg/’) могут быть лучшим совпадением.

Странно, что браузер PS4 (или «скрытый» браузер PS5?) работает некорректно. Не обновил ли Sony свой порт WebKit или не сломал ли он что-то по сравнению с Safari?

1 лайк

Это охватит множество других пользовательских агентов, помимо консолей, и это нежелательно, верно?

4 лайка

Все веб-браузеры из Microsoft Store должны использовать тот же движок рендеринга, что и старый Microsoft Edge.

1 лайк

Мы внесли необходимые исправления, и консоли со старыми движками браузеров получат нашу базовую версию HTML только для чтения и смогут навигировать по Discourse.

Также с последним обновлением мы подтвердили, что Xbox One, S и X теперь могут просматривать полное веб-приложение Discourse :tada:

9 лайков

Отличные новости! Проверю утром. Спасибо команде Discourse :heart:!

4 лайка

Изменения вступили в силу за последние 24 часа! :grin:

Да, только что проверил на Xbox Series X, и форумы Discourse загружаются. Ещё раз спасибо :heart:.

3 лайка

Эта тема была автоматически закрыта через 2 дня. Новые ответы больше не принимаются.