Publicado em: 3 de abril de 2025
Quando chega a hora de lançar um novo recurso no Chrome, há muitas verificações e controles para garantir que ele funcione, seja compatível e confiável. Um desses equilíbrios são os experimentos do Finch. Não deixe que a parte "experimento" do nome engane você e faça pensar que ele não é seguro. É o contrário. Os lançamentos do Finch ajudam a adicionar recursos que podem causar problemas de compatibilidade de maneira segura, já que permitem desativar rapidamente um recurso se encontrarmos problemas inesperados. Neste artigo, explicamos como e por que usamos o Finch para alguns lançamentos de recursos no Chrome.
Em geral, ativar um recurso no Chrome significa alternar um booleano de "desativado" para "ativado" no navegador. Quando um novo recurso é "lançado", isso 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": isso significa que o próprio executável do Chrome tem uma configuração ativada por padrão.
- Ative o recurso "por teste de origem": o sistema de teste de origem é uma maneira de um site específico inscrever todos os usuários do Chrome em um experimento, o que ativa um recurso específico apenas nesse site.
- Ative 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 "botão de desativação do Finch": é o oposto de ativar "usar o Finch". Nesse caso, o recurso é ativado "no código", mas depois 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 falar muito mais sobre como ativar "no código" ou "teste de origem". Mas o Finch tem vários casos de uso interessantes.
Teste com 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 os dados possam ser coletados sobre a diferença de performance, comportamento ou uso quando o recurso está ativado ou desativado.
Um exemplo de teste A/B é quando lançamos a decodificação especulativa de imagens. Essa é uma melhoria de performance que não deve ser notada por desenvolvedores ou usuários, além de fazer com que o Chrome carregue as páginas mais rapidamente. Mas, para garantir que nada inesperado acontecesse e para medir com precisão o impacto na performance, usamos o Finch para fazer um teste A/B.
Desativar um recurso problemático
Para 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 atingiu o status estável, precisamos de uma maneira de desativar rapidamente o recurso para que usuários e 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 atuais por motivos imprevistos.
Ativar recursos arriscados 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, o lançamento de 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 apenas mantê-lo em reserva como um kill switch.
Por exemplo, o "relaxamento" do analisador de HTML foi uma mudança relacionada ao novo recurso de seleção personalizável, que permitiu que mais conteúdo do que antes fosse colocado dentro de um elemento <select>. Como essa mudança pode prejudicar sites atuais, precisamos lançá-la com cuidado.
Ativar recursos usando o Finch pode ser mais seguro do que removê-los com ele, porque o Finch não atinge 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 caso um recurso fosse ativado no código e depois desativado usando o Finch, porque eles não receberiam a configuração do Finch e continuariam com o recurso ativado. Ao ativar o recurso usando o Finch, garantimos a capacidade de desativá-lo para todos os usuários em caso de emergência.
Como verificar se você está participando de um experimento do Finch?
Isso é difícil para os usuários fazerem diretamente. A maneira recomendada é entrar em contato com um engenheiro do Chrome (geralmente 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:
- Navegue para
chrome://version. - Copie toda a lista de texto (sim, ela pode ser bem longa) ao lado de "Variações ativas".
- Cole esse texto em um arquivo de texto (por exemplo,
variations.txt) e anexe a um bug.
Com essa lista de variações, os engenheiros do Chrome podem decodificar e ver quais recursos estão ativados ou desativados no seu navegador.
O que acontece quando o experimento do Finch atinge 100% e está pronto para ser usado?
Depois de termos 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 o ativamos "no código". Neste ponto, é seguro definir uma data de término para 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.