При входе в SDMB (а также на try.discourse.org) сегодня я вижу следующее сообщение:
К сожалению, ваш браузер устарел и не работает на этом сайте. Пожалуйста, обновите браузер для просмотра богатого контента, входа в систему и ответов.
Однако я использую последнюю версию своего браузера, SeaMonkey 2.53.13, которая была выпущена всего четыре дня назад. Discourse мог решить не поддерживать его, но утверждать, что он «слишком старый» для работы с Discourse, — неверно. Действительно, если я заменю строку User-Agent браузера, то обнаружу, что всё работает нормально.
Проблема, похоже, заключается в неточном определении User-Agent со стороны Discourse. По умолчанию строка User-Agent SeaMonkey заявляет о совместимости с Firefox:
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.13
Если изменить строку User-Agent следующим образом, чтобы скрыть совместимость с Firefox (через Редактирование > Параметры > Дополнительно > Сетевое взаимодействие HTTP > Строка User-Agent > Идентифицировать как SeaMonkey), то SeaMonkey снова сможет посещать сайты Discourse без видимых проблем:
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 SeaMonkey/2.53.13
Я понимаю, что Discourse может не желать поддерживать браузеры, подобные SeaMonkey, которые больше не являются основными, но было бы неплохо, если бы такие браузеры не блокировались заранее от доступа к сайтам Discourse. И даже если такие браузеры блокируются заранее, было бы неплохо, если бы Discourse не сообщал ложную причину этого.
Пожалуйста, улучшите определение User-Agent, чтобы оно проверяло всю строку до конца, прежде чем решать, является ли пользовательский агент «слишком старым». (Я подозреваю, что сейчас оно просто ищет имена и версии поддерживаемых браузеров, независимо от их положения в строке User-Agent.) В конце концов, вы не блокируете браузеры, потому что они сообщают старую версию Mozilla в начале строки, так почему же вы должны блокировать браузеры, потому что они сообщают старую версию Firefox в середине строки?
Если по какой-то причине изменение алгоритма определения нежелательно или непрактично, то измените поведение при обнаружении якобы несовместимого пользовательского агента: вместо того чтобы (возможно, ложно) сообщать пользователю, что его браузер «слишком старый» и блокировать дальнейший доступ, сообщите пользователю, что его браузер не поддерживается, и предоставьте ссылку на список поддерживаемых браузеров, но дайте ему возможность продолжить работу с использованием своего текущего браузера.