Chrome e Firefox em breve para alcançar a versão principal 100

Mudanças na string do user agent, as estratégias que o Chrome e o Firefox estão tomando para reduzir o impacto e como você pode ajudar.

O Chrome e o Firefox vão chegar à versão 100 em alguns meses. Isso pode causar falhas em sites que dependem da identificação da versão do navegador para executar a lógica de negócios. Esta postagem aborda o cronograma dos eventos, as estratégias que o Chrome e o Firefox estão implementando para reduzir o impacto e como você pode ajudar.

String do user agent

O user agent (UA) é uma string que os navegadores enviam em cabeçalhos HTTP, para que os servidores possam identificar o navegador. A string também pode ser acessada por JavaScript com navigator.userAgent. Geralmente, é formatado da seguinte maneira:

<browser_name>/<major_version>.<minor_version>

Por exemplo, as versões mais recentes dos navegadores no momento da publicação desta postagem são:

  • Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36
  • Firefox: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
  • Safari: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15

Versão principal 100: número de versão de três dígitos

A versão principal 100 é um grande marco para o Chrome e para o Firefox. Ele também pode causar falhas em sites à medida que passamos de um número de versão de dois dígitos para um número de versão com três dígitos. Os desenvolvedores da Web usam todos os tipos de técnicas para analisar essas strings, desde o código personalizado até o uso de bibliotecas de análise do user agent, que podem ser usadas para determinar a lógica de processamento correspondente. Em breve, o user agent e todos os outros mecanismos de relatório de versão informarão um número de versão de três dígitos.

Linhas do tempo da versão 100

A versão 100 dos navegadores será lançada primeiro em versões experimentais (Chrome Canary, Firefox Nightly), depois nas versões Beta e, por fim, no canal estável.

Navegador Cronograma
Chrome (programação de lançamento) 29 de março de 2022
Firefox (programação de lançamento) 3 de maio de 2022

Por que um número de versão de três dígitos pode ser problemático?

Há pouco mais de 12 anos, quando os navegadores chegaram à versão 10, vários problemas foram descobertos com as bibliotecas de análise do user agent, já que o número da versão principal passou de um dígito para dois.

Sem uma especificação única a seguir, navegadores diferentes têm formatos distintos para a string do user agent e análise do user agent específica do site. É possível que algumas bibliotecas de análise tenham suposições codificadas ou bugs que não considerem os números de versão principais de três dígitos. Muitas bibliotecas melhoraram a lógica de análise quando os navegadores passaram para números de versão de dois dígitos. Portanto, atingir o marco de três dígitos espera-se que cause menos problemas. Mike Taylor, um engenheiro da equipe do Chrome, fez uma pesquisa com bibliotecas comuns de análise do UA, mas não encontrou nenhum problema. A execução de experimentos do Chrome no campo encontrou alguns problemas que estão em análise.

O que os navegadores estão fazendo com relação a isso?

O Firefox e o Chrome estão fazendo experimentos em que as versões atuais do navegador relatam estar na versão principal 100, a fim de detectar possíveis falhas no site. Isso levou a alguns problemas informados, alguns dos quais já foram corrigidos. Esses experimentos vão continuar sendo executados até o lançamento da versão 100.

Também existem estratégias de mitigação de backup caso o lançamento da versão 100 em canais estáveis cause mais danos aos sites do que o previsto.

Mitigação do Chrome

No Chrome, o plano de backup é usar uma flag para congelar a versão principal em 99 e informar o número real da versão principal na parte da versão secundária da string do user agent (o código já foi chegado).

A versão do Chrome relatada na string do user agent segue o padrão <major_version>.<minor_version>.<build_number>.<patch_number>.

Se o plano de backup for aplicado, a string do user agent será assim:

99.101.4988.0

O Chrome também está executando experimentos para garantir que informar um valor de três dígitos na parte da versão secundária da string não resulte em falha, já que a versão secundária na string do user agent do Chrome informou 0 há muito tempo. A equipe do Chrome decidirá se quer recorrer à opção de backup com base no número e na gravidade dos problemas relatados.

Mitigação do Firefox

No Firefox, a estratégia dependerá da importância da falha. O Firefox tem um mecanismo de intervenção no site. A equipe de webcompat do Mozilla pode corrigir sites corrompidos no Firefox usando esse mecanismo. Se você digitar about:compat na barra de URL do Firefox, poderá ver o que está sendo corrigido no momento. Se um site apresentar falhas e a versão principal for 100 em um domínio específico, será possível corrigir o problema enviando a versão 99.

Se a falha for generalizada, é possível congelar o número da versão principal. Há diferentes estratégias possíveis, cada uma com prós e contras. O Mozilla pode enviar o número da versão real como um número de versão secundário, congelar a string totalmente como está ou enviar o número da versão real por outros parâmetros.

Toda estratégia que adiciona complexidade à string do user agent tem um forte impacto no ecossistema. Vamos trabalhar juntos para evitar mais um comportamento peculiar.

O que você pode fazer para ajudar?

No Chrome e no Firefox Nightly, é possível configurar o navegador para informar a versão como 100 no momento e informar quaisquer problemas que você encontrar.

Configurar o Google Chrome para informar que a versão principal é 100

  1. Acesse chrome://flags/#force-major-version-to-100.
  2. Defina a opção como Enabled.

Configurar o Firefox Nightly para informar que a versão principal é 100

  1. Abra o menu de configurações do Firefox Nightly.
  2. Pesquise "Firefox 100" e marque a opção "String do user agent do Firefox 100".

Relatórios de teste e arquivo

  • Se você é mantenedor de um site, teste-o com o Chrome e o Firefox 100. Revise o código de análise e as bibliotecas do user agent e verifique se eles podem processar números de versão de três dígitos. Compilamos alguns dos padrões que estão falhando no momento (link em inglês).
  • Se você desenvolver uma biblioteca de análise do user agent, adicione testes para analisar versões maiores e iguais a 100. Nossos testes iniciais mostram que versões recentes de bibliotecas conseguem lidar com isso corretamente. No entanto, a Web tem um longo legado. Por isso, se você tem versões antigas de bibliotecas de análise, é hora de verificar se há problemas e fazer o upgrade.
  • Se você estiver navegando na Web e perceber problemas com a versão principal 100, envie um relatório em webcompat.com.