Melhor cópia para o navegador é "muito antigo para funcionar neste site"

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.

Provavelmente tem a ver com a forma como o Discourse verifica o agente do usuário, na minha opinião, o Seamonkey não deveria ter uma opção de cabeçalho do Firefox se for mostrar uma versão antiga do Firefox, que não é compatível com o Discourse, provavelmente um mau planejamento do lado do Seamonkey, não com o Discourse.

2 curtidas

Normalmente, o Discourse tenta detectar versões não suportadas por meio da verificação de recursos em vez de analisar o UA.

Um problema recente com o composer em versões mais antigas do Firefox exigiu que eles usassem a análise do UA porque, se você perguntasse a certas versões do Firefox, elas diriam felizmente (e tecnicamente com precisão) que suportavam as funções necessárias quando, na verdade, eram defeituosas e não funcionavam corretamente.

O problema aqui é que o Seamonkey está dizendo aos sites, por padrão, que é compatível com uma versão muito mais antiga do Firefox em vez da versão com a qual ele é realmente compatível.

O Discourse está fazendo a coisa certa neste caso.

4 curtidas

Eu não acho que seja tão simples. Uma determinada versão do SeaMonkey anuncia compatibilidade com uma certa versão do Firefox porque essas duas versões de navegador compartilham a mesma base de código principal. Geralmente pode-se assumir que essa versão do SeaMonkey pode fazer, no mínimo, tudo o que essa versão do Firefox pode fazer. Além dessa compatibilidade principal, uma determinada versão do SeaMonkey pode também suportar certos recursos que versões posteriores do Firefox suportam, embora não necessariamente todos eles. Portanto, não seria verdadeiro (nem geralmente útil) para o SeaMonkey anunciar explicitamente a compatibilidade com essas versões posteriores.

Em resumo, só porque um novo navegador anuncia compatibilidade com um navegador antigo não significa que o novo navegador não suporte recursos mais novos também. Novamente, a maioria dos navegadores hoje anuncia compatibilidade com Mozilla/5.0, mas isso não significa que eles estejam estritamente limitados ao que aquele motor antigo pode fazer.

Você poderia tentar abrir o editor e ver se os botões Negrito/Itálico funcionam corretamente? Esse foi o problema que tivemos com versões mais antigas do Firefox.

1 curtida

Uma alternativa ao UA sniffing que corresponde a uma versão próxima (89 → 91) do Firefox é a detecção de recursos window.visualViewport. Talvez possamos mudar para isso? Mas ainda precisaremos adicionar um bypass para o Safari 12.5 até janeiro :weary:

Você poderia tentar abrir o editor e ver se os botões Negrito/Itálico funcionam corretamente? Esse foi o problema que tivemos com versões mais antigas do Firefox.

Posso confirmar que esses botões atualmente não funcionam corretamente para mim no SeaMonkey 2.53.13, mas funcionam no Firefox 100.0.2. Eu não tinha tentado usá-los antes, pois sempre escrevo diretamente em Markdown.

Agora que você mencionou, o botão Responder também não está funcionando no SeaMonkey aqui no meta, embora funcione no boards.straightdope.com (rodando em hosted-by-discourse.com).

1 curtida

Então o aviso que temos no topo é válido?

2 curtidas

Não como está escrito, não, porque meu navegador não é “antigo” e eu não preciso “atualizá-lo”. O mínimo que você poderia fazer seria mudar a redação para: “Você parece estar usando um navegador não suportado. Por favor, mude para um navegador suportado para ver conteúdo rico, fazer login e responder.”

4 curtidas

Sim, estou bem em atualizar a cópia, “antigo” está de fato julgando e até o lynx ainda está em desenvolvimento ativo.

3 curtidas

@nbianca você pode atualizar a cópia?

2 curtidas

Atualizei a cópia neste PR:

2 curtidas

Este tópico foi automaticamente fechado após 4 dias. Novas respostas não são mais permitidas.