Al iniciar sesión en el SDMB (y también en try.discourse.org) hoy, me encuentro con el siguiente mensaje:
Desafortunadamente, tu navegador es demasiado antiguo para funcionar en este sitio. Por favor, actualiza tu navegador para ver contenido enriquecido, iniciar sesión y responder.
Sin embargo, estoy usando la versión más reciente de mi navegador, SeaMonkey 2.53.13, que se lanzó hace solo cuatro días. Discourse puede haber decidido no admitirlo, pero es incorrecto decir que es “demasiado antiguo” para funcionar con Discourse. De hecho, si anulo la cadena User-Agent del navegador, descubro que todo parece funcionar bien.
El problema parece ser la detección imprecisa del User-Agent por parte de Discourse. Por defecto, la cadena User-Agent de SeaMonkey anuncia compatibilidad con Firefox:
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.13
Si cambio la cadena User-Agent de la siguiente manera para ocultar la compatibilidad con Firefox (a través de Editar → Preferencias → Avanzado → Red HTTP → Cadena de Agente de Usuario → Identificarse como SeaMonkey), entonces SeaMonkey puede visitar sitios de Discourse nuevamente sin problemas obvios:
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 SeaMonkey/2.53.13
Entiendo que Discourse puede no desear admitir navegadores como SeaMonkey que ya no son convencionales, pero sería bueno que esos navegadores no fueran bloqueados proactivamente para acceder a los sitios de Discourse. E incluso si estos navegadores son bloqueados proactivamente, sería bueno que Discourse no informara una razón falsa para hacerlo.
Por favor, mejoren la detección del User-Agent para que verifique hasta el final de la cadena antes de decidir si el agente de usuario es “demasiado antiguo”. (Sospecho que actualmente solo busca los nombres y versiones de los navegadores admitidos, independientemente de su posición dentro de la cadena User-Agent). Después de todo, no bloquean navegadores porque informan una versión antigua de Mozilla al principio de la cadena, así que ¿por qué deberían bloquear navegadores porque informan una versión antigua de Firefox en el medio de la cadena?
Si por alguna razón es indeseable o poco práctico cambiar el algoritmo de detección, entonces cambien el comportamiento al detectar un agente de usuario supuestamente incompatible: en lugar de decirle al usuario (quizás falsamente) que su navegador es “demasiado antiguo” y bloquear el acceso posterior, dígale al usuario que su navegador no está admitido y enlace a la lista de navegadores admitidos, pero dele la opción de continuar de todos modos usando su navegador actual.