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 usando 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 problemas em sites que dependem da identificação da versão do navegador para executar a lógica de negócios. Esta postagem aborda a linha do tempo dos eventos, as estratégias que o Chrome e o Firefox estão usando 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 pelo JavaScript com navigator.userAgent. Ele geralmente é formatado da seguinte maneira:

<browser_name>/<major_version>.<minor_version>

Por exemplo, as versões de lançamento mais recentes dos navegadores no momento da publicação deste post 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 três dígitos da versão

A versão principal 100 é um marco importante para o Chrome e o Firefox. Isso também pode causar problemas em sites, já que estamos passando de um número de versão de dois dígitos para um número de três dígitos. Os desenvolvedores da Web usam todos os tipos de técnicas para analisar essas strings, desde códigos personalizados até o uso de bibliotecas de análise de User-Agent, que podem ser usadas para determinar a lógica de processamento correspondente. O User-Agent e todos os outros mecanismos de geração de relatórios de versão em breve vão informar 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 nas 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çamentos) 29 de março de 2022
Firefox (programação de lançamentos) 3 de maio de 2022

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

Quando os navegadores alcançaram a versão 10 pela primeira vez, há pouco mais de 12 anos, muitos problemas foram descobertos com as bibliotecas de análise de user agent, já que o número da versão principal passou de um para dois dígitos.

Sem uma especificação única a ser seguida, diferentes navegadores têm formatos diferentes para a string User-Agent e a análise de User-Agent específica do site. É possível que algumas bibliotecas de análise tenham suposições ou bugs fixados no código que não levam em conta números de versão principais de três dígitos. Muitas bibliotecas melhoraram a lógica de análise quando os navegadores passaram a usar números de versão de dois dígitos. Portanto, é esperado que o marco de três dígitos cause menos problemas. Mike Taylor, um engenheiro da equipe do Chrome, fez uma pesquisa de bibliotecas de análise de UA comuns que não revelaram problemas. A execução de experimentos do Chrome no campo trouxe alguns problemas, que estão sendo trabalhados.

O que os navegadores estão fazendo a respeito?

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

Também há estratégias de mitigação de backup, caso a versão 100 lançada para canais estáveis cause mais danos aos sites do que o esperado.

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 lançado.

A versão do Chrome informada na string User-Agent segue o padrão <major_version>.<minor_version>.<build_number>.<patch_number>.

Se o plano de backup for usado, a string User-Agent vai ficar assim:

99.101.4988.0

O Chrome também está realizando experimentos para garantir que o relatório de 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 por muito tempo. A equipe do Chrome vai decidir se vai 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 vai depender da gravidade da falha. O Firefox tem um mecanismo de intervenção no site. A equipe de compatibilidade da Web da Mozilla pode corrigir sites com problemas no Firefox usando esse mecanismo. Se você digitar about:compat na barra de URL do Firefox, vai saber o que está sendo corrigido. Se um site falhar com a versão principal 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. Existem diferentes estratégias possíveis, cada uma com seus prós e contras. O Mozilla pode enviar o número da versão real como um número de versão secundária, congelar a string por completo ou enviar o número da versão real por outros parâmetros.

Cada estratégia que adiciona complexidade à string User-Agent tem um forte impacto no ecossistema. Vamos trabalhar juntos para evitar outro comportamento estranho.

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 e informar os problemas encontrados.

Configurar o Chrome para informar a versão principal como 100

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

Configurar o Firefox Nightly para informar a versão principal como 100

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

Testar e enviar relatórios

  • Se você é um administrador de site, teste seu site com o Chrome e o Firefox 100. Revise o código de análise de User-Agent e as bibliotecas e verifique se eles podem processar números de versão de três dígitos. Coletamos alguns dos padrões que estão sendo quebrados.
  • Se você desenvolver uma biblioteca de análise de user agent, adicione testes para analisar versões maiores ou iguais a 100. Nossos primeiros testes mostram que versões recentes de bibliotecas podem processá-lo corretamente. No entanto, a Web tem um longo legado, então, se você tiver versões antigas de bibliotecas de análise, é hora de verificar se há problemas e fazer upgrade.
  • Se você estiver navegando na Web e notar algum problema com a versão principal 100, envie um relatório em webcompat.com.