Ao fazer login em o SDMB (e também em try.discourse.org) hoje, sou saudado com a seguinte mensagem:
Infelizmente, seu navegador é muito antigo para funcionar neste site. Atualize seu navegador para ver conteúdo rico, fazer login e responder.
No entanto, estou usando a versão mais recente do meu navegador, SeaMonkey 2.53.13, que foi lançada há apenas quatro dias. O Discourse pode ter optado por não suportá-lo, mas está errado dizer que ele está “muito antigo” para funcionar com o Discourse. De fato, se eu substituir a string User-Agent do navegador, descobrirei que tudo parece funcionar bem.
O problema parece ser a detecção imprecisa do User-Agent por parte do Discourse. Por padrão, a string User-Agent do SeaMonkey anuncia compatibilidade com o Firefox:
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.13
Se eu alterar a string User-Agent da seguinte forma para ocultar a compatibilidade com o Firefox (via Editar->Preferências->Avançado->Rede HTTP->String do Agente do Usuário->Identificar como SeaMonkey), o SeaMonkey poderá visitar sites do Discourse novamente sem problemas óbvios:
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 SeaMonkey/2.53.13
Entendo que o Discourse pode não querer dar suporte a navegadores como o SeaMonkey, que não são mais populares, mas seria bom se esses navegadores não fossem proativamente bloqueados de acessar sites do Discourse. E mesmo que esses navegadores sejam proativamente bloqueados, seria bom se o Discourse não informasse um motivo falso para isso.
Por favor, melhore a detecção do User-Agent para que ela verifique até o final da string antes de decidir se o agente do usuário está “muito antigo”. (Suspeito que ele atualmente apenas procure os nomes e versões de navegadores suportados, independentemente de sua posição dentro da string User-Agent.) Afinal, você não está bloqueando navegadores porque eles relatam uma versão antiga do Mozilla no início da string, então por que você deveria bloquear navegadores porque eles relatam uma versão antiga do Firefox no meio da string?
Se for por algum motivo indesejável ou impraticável alterar o algoritmo de detecção, então, por favor, altere o comportamento ao detectar um user-agent supostamente incompatível: em vez de dizer (talvez falsamente) ao usuário que seu navegador está “muito antigo” e bloquear o acesso posterior, diga ao usuário que seu navegador não é suportado e vincule à lista de navegadores suportados, mas dê a ele uma opção de continuar usando seu navegador existente.