Я один из администраторов на форуме openSUSE (forums.opensuse.org). У нас есть несколько пользователей, которые используют последнюю версию SeaMonkey в качестве браузера.
Недавно мы обновились с версии 3.0.3 (полагаю, это была она — обновление выполнил наш технический администратор) до 3.1.3, и эти пользователи сообщили, что больше не могут войти на форум.
Я провёл небольшое расследование, и, похоже, проверка браузера, которая не проходит, находится в PR 19847 — конкретно тест в файле app/assets/javascripts/discourse/scripts/browser-detect.js, строка 10:
!CSS.supports("aspect-ratio: 1")
Версия SeaMonkey — 2.53.18, и он сообщает о совместимости с Firefox 91. Строка User-Agent:
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0 SeaMonkey/2.53.18
Я протестировал это на чистой установке SeaMonkey в openSUSE Tumbleweed 20231210 и сравнил каждую строку теста в JavaScript с результатами, полученными в Chrome 120.0.6099.71. Этот тест был единственным, который отличался.
Пожалуйста, сообщите, какая ещё информация нужна для решения проблемы; я знаю, что SeaMonkey не является официально поддерживаемым браузером. Также было бы полезно узнать, есть ли какая-то техническая причина, по которой соотношение сторон не поддерживается, чтобы мы могли проинформировать наших пользователей.
Но затем в разделе «Известные проблемы» говорится:
Базовая версия пользовательского агента была установлена на 91 для обеспечения совместимости с веб-сайтами
Так что… похоже, они просто подделывают строку пользовательского агента Firefox 91. Фактический набор функций соответствует Firefox v60, который был изначально выпущен в 2018 году и не поддерживал aspect-ratio
Все наши официально поддерживаемые браузеры поддерживают эту функцию aspect-ratio с 2021 года, поэтому значительная часть интерфейса Discourse теперь полагается на неё.
Хорошо, спасибо. Просматривая код на JS, вижу, что проверка версии происходит после проверки, которая вызывает проблему у пользователя.
Кстати, пользователь сообщил, что до обновления у него всё работало отлично — значит, даже несмотря на то, что интерфейс полагается на это, это не вызывало у него особых проблем.
Существует множество других современных функций, от которых мы зависим и которые Firefox 60.0 не поддерживает (например, import(), поля классов и т. д.), так что да, aspect-ratio — не единственное препятствие.
Верно, но обновление Discourse с версии 3.0 до 3.1 подтянуло новый код Discourse, который зависит от функции aspect-ratio (а также, например, от import() и полей классов).
Понял, спасибо еще раз за быстрый ответ. Я сообщил пользователю, что проблема совместимости не связана напрямую с безопасностью (как он изначально предположил), а касается совместимости функциональности браузера, и что ему, вероятно, стоит создать отчет об ошибке в Seamonkey, указав, что заявленная поддержка Firefox 91 на самом деле не работает.