O que é um experimento do Chrome Finch?

Publicado em 3 de abril de 2025

Quando chega a hora de lançar um novo recurso no Chrome, há muitos controles e contrapesos para garantir que ele funcione, seja compatível e confiável. Um deles é o Finch Experiments. Não se deixe enganar pelo nome "experimento", que pode sugerir que o recurso não é seguro. Na verdade, é o contrário. Os lançamentos do Finch nos ajudam a adicionar recursos que podem causar problemas de compatibilidade de forma segura, já que permitem desativar rapidamente um recurso se encontrarmos problemas imprevistos. Neste artigo, explicamos como e por que usamos o Finch para algumas versões de recursos no Chrome.

Em geral, ativar um recurso no Chrome significa simplesmente ativar ou desativar um valor booleano no navegador. Quando um novo recurso "é lançado", significa que o estado padrão desse booleano é alterado para "ativado" para todos os usuários. Há várias maneiras de fazer isso:

  • Ativar o recurso "no código": significa que o executável do Chrome tem uma configuração ativada por padrão.
  • Ativar o recurso "por teste de origem": o sistema de teste de origem é uma maneira de um site específico ativar todos os usuários do Chrome em um experimento, o que ativa um recurso específico apenas nesse site.
  • Ativar o recurso "usando o Finch": o Chrome busca um arquivo de configuração de um servidor periodicamente, e esse arquivo pode conter instruções para ativar ou desativar um recurso.
  • Um "interruptor de Finch": é o oposto de ativar a opção "Usar Finch". Nesse caso, o recurso é ativado "no código", mas desativado usando o sistema Finch, geralmente devido a problemas detectados após o lançamento.

Casos de uso do Finch

O tema desta postagem do blog é o Finch, então não vamos discutir muito sobre como ativar "no código" ou "teste de origem". Mas o Finch tem vários casos de uso interessantes.

Testar em um pequeno grupo de usuários (teste A/B)

Muitas vezes, o Finch é usado para fazer testes A/B de um recurso ou otimização. Nesse caso, um recurso é ativado para uma pequena porcentagem de usuários, para que seja possível coletar dados sobre a diferença de desempenho, comportamento ou uso quando o recurso está ativado ou desativado.

Um exemplo de teste A/B é quando lançamos as decodificações especulativas de imagens. Essa é uma melhoria de desempenho que não deve ser notada por desenvolvedores ou usuários, a não ser que o Chrome carregue as páginas mais rapidamente. No entanto, para garantir que nada inesperado acontecesse e também para medir com precisão o impacto no desempenho, usamos o Finch para fazer um teste A/B.

Desativar um recurso problemático

Para garantir a segurança do produto e a experiência do usuário, o Chrome pode usar o sistema Finch para desativar remotamente recursos problemáticos que foram ativados "no código". Por exemplo, se um recurso foi ativado por padrão, mas os problemas só surgiram depois que o Chrome alcançou o status "Estável", precisamos de uma maneira de desativar rapidamente o recurso para que os usuários e as empresas voltem a um estado seguro. Isso pode ser necessário quando há bugs não descobertos no recurso ou quando um recurso quebra sites existentes por motivos imprevisíveis.

Ativar recursos de risco de maneira mais segura

Para a maioria dos recursos lançados pelo Chrome, há pouco risco, porque podemos testar e verificar se o novo código funciona em todos os sites.

No entanto, às vezes, lançar recursos pode ser bastante arriscado devido a problemas de compatibilidade desconhecidos ou outras interações complicadas. Nesse caso, o sistema Finch pode ser usado para ativar o recurso, em vez de simplesmente mantê-lo em reserva como um interruptor de desativação.

Por exemplo, a "simplificação" do analisador de HTML foi uma mudança relacionada ao novo recurso de seleção personalizável, que permitiu que mais conteúdo fosse colocado dentro de um elemento <select>. Como essa mudança pode corromper sites atuais, precisamos fazer o lançamento com cuidado.

Ativar recursos usando o Finch pode ser mais seguro do que removê-los, porque o Finch não alcança 100% dos usuários por vários motivos. Por exemplo, alguns usuários corporativos têm uma política que proíbe totalmente a configuração do Finch. Esses usuários continuariam em risco se um recurso fosse ativado no código e depois desativado usando o Finch, porque eles não receberiam a configuração do Finch e o recurso continuaria ativado. Ao ativar o recurso usando o Finch, podemos garantir a capacidade de desativá-lo para todos os usuários em caso de emergência.

Como verificar se você está em um experimento do Finch?

Isso é difícil para os usuários fazerem diretamente. A maneira recomendada é entrar em contato com um engenheiro do Chrome (normalmente no contexto de um bug do Chromium) e enviar a "lista de variações". Esta é uma lista de versões codificadas especiais de todas as configurações do Finch para um determinado navegador. Ele pode ser recuperado facilmente:

  1. Navegue para chrome://version.
  2. Copie a lista de texto inteira (sim, ela pode ser muito longa) listada ao lado de "Variações ativas".
  3. Cole esse texto em um arquivo de texto (por exemplo, variations.txt) e anexe-o a um bug.

Com essa lista de variações, os engenheiros do Chrome podem decodificá-la e conferir quais recursos estão ativados ou desativados no navegador.

O que acontece quando o experimento do Finch atinge 100% e está pronto para ser usado?

Quando temos certeza de que o experimento foi "bem-sucedido" e que o recurso em questão não representa riscos para desenvolvedores ou usuários, sempre ativamos o recurso "no código". Nesse ponto, é seguro encerrar a configuração do Finch para que ela não tenha mais efeito nos navegadores após a versão em que o recurso foi ativado no código.