Um mecanismo para o Chrome testar novos recursos do navegador
Talvez você já tenha ouvido falar das variações do Chrome, ou testes de campo do Chrome, ou talvez até mesmo do codinome interno, Chrome Finch.
Todos eles se referem à mesma coisa: um mecanismo para testar novos recursos ou mudanças no navegador Chrome, ou ao ChromeOS, o sistema operacional do Chrome executado em Chromebooks.
Para que as variações do Chrome são usadas?
As variações do Chrome permitem que o Chrome ative um novo recurso, desative um recurso ou teste uma alteração em um recurso para um subconjunto de usuários.
Nem tudo no Chrome é introduzido com o mecanismo "Variações do Chrome". No entanto, a equipe do Chrome pode usar esse recurso sempre que for necessário ter um cuidado especial ao fazer uma mudança ou quando houver o risco de uma mudança afetar o desempenho de maneiras inesperadas. Uma "mudança" pode significar uma melhoria de desempenho no código do Chrome, uma atualização na aparência ou no funcionamento do navegador ou, ocasionalmente, até mesmo uma modificação em uma API JavaScript.
As variações do Chrome também podem ser usadas para validar uma hipótese sobre uma mudança ou atualização. Por exemplo, para uma porcentagem de usuários em um grupo de variações do Chrome, tentamos ajustar os parâmetros do protocolo de rede QUIC para tornar o Chrome mais rápido nas condições reais de rede dos usuários.
Outra área em que você pode encontrar Variações do Chrome é se você trabalhar com os testes de origem do Chrome. Por padrão, um recurso de teste de origem é ativado em todas as páginas que fornecem um token de teste válido. No entanto, em alguns casos, as Variações do Chrome são usadas para controlar a ativação de um recurso. Isso significa que um recurso de teste de origem pode não estar disponível para determinados usuários, mesmo quando eles acessam uma página que fornece um token válido. As informações sobre a proporção de usuários qualificados para ativação de um recurso de teste de origem são fornecidas com a documentação e as atualizações de cada teste.
Como as variações do Chrome funcionam?
A cada 30 minutos no computador ou dispositivo móvel, ou sempre que você inicia o Chrome, o navegador faz uma solicitação ao back-end do Chrome para acessar o arquivo de configuração das variações do Chrome, que é conhecido como a semente das variações. Em outras palavras, há um servidor dedicado para fornecer sementes de Variações do Chrome. O Chrome faz uma solicitação HTTPS ao servidor, que responde com uma semente compactada por delta.
Quando o Chrome no dispositivo entra em contato com o back-end "Variações do Chrome" para receber o arquivo de origem, ele também fornece informações sobre a versão do Chrome e o sistema operacional em que está sendo executado. O arquivo retornado pelo back-end "Variações do Chrome" é usado para ativar ou desativar recursos ou especificar variações em um recurso.
O Chrome usa os dados do arquivo de sugestão e de uma semente de ordem aleatória armazenada localmente para atribuir aleatoriamente o navegador a um grupo de variações. Em outras palavras, a sugestão de randomização, combinada com o arquivo de sugestão do back-end de variações do Chrome, pode ser usada para ativar ou desativar recursos no navegador para um subconjunto de usuários. O navegador no seu dispositivo monitora a qual grupo de variações ele pertence.
Lançamento de recursos e canais do Chrome
Um dos usos mais importantes das variações do Chrome é implementar gradualmente as alterações ou novos recursos para uma porcentagem de clientes do Chrome. Isso é crucial para um aplicativo complexo como o Chrome, que tem bilhões de usuários, com milhares de tipos de dispositivos em diversas plataformas, usando dezenas de idiomas diferentes para milhões de apps e sites diferentes.
O Chrome recebe feedbacks valiosos sobre o uso e os testes no Chrome Canary, Dev e Beta. Podemos usar as variações do Chrome para ativar ou desativar recursos em qualquer um desses canais de lançamento. No entanto, esses canais são usados principalmente por desenvolvedores e outros especialistas. Os usuários do Chrome Stable interagem com o Chrome de maneira diferente e em números muito maiores. Por isso, sempre precisamos fazer a validação no Canal Stable. Isso nos permite resolver qualquer problema encontrado no uso normal do navegador. Os engenheiros do Chrome nem sempre conseguem prever como usuários reais responderão a mudanças e novos recursos em grande escala.
"Variações do Chrome" é um mecanismo crucial para ajudar nisso, possibilitando a verificação de uso e métricas do Chrome Stable com um recurso ativado ou desativado. Ao medir o impacto das mudanças no Chrome Stable, podemos oferecer os melhores recursos possíveis e criar um navegador melhor, mesmo quando as compensações forem complexas.
Quando os engenheiros do Chrome usam as variações do Chrome?
Há três razões principais para o Chrome precisar das Variações do Chrome.
Ativar um novo recurso
O uso das variações do Chrome para fornecer controle sobre a ativação de um novo recurso é particularmente útil para qualquer coisa que possa ser mais arriscada ou que possa afetar o desempenho.
Com as variações do Chrome, podemos oferecer um novo recurso para um subconjunto de usuários. Os engenheiros do Chrome podem verificar diferenças no desempenho ou analisar outros tipos de feedback do grupo de variações.
Desativar um recurso
As variações do Chrome podem ser usadas como um mecanismo de segurança para desativar um recurso, embora isso raramente aconteça.
Por exemplo, um novo recurso de rede pode ficar sujeito a um ataque de negação de serviço. As Variações do Chrome podem ser usadas para desativar rapidamente um recurso como esse, já que o download da configuração de Variações do Chrome é feito a cada 30 minutos e as configurações são ativadas sempre que você reinicia o Chrome. Por outro lado, atualizar o Chrome e aguardar a propagação da nova versão para bilhões de usuários seria muito mais lento.
Testar mudanças em um elemento
Por fim, as variações do Chrome podem ser usadas para validar mudanças e atualizações. Por exemplo, podemos ajustar a dificuldade do jogo do dinossauro off-line do Chrome para tornar a interação mais divertida.
As Variações do Chrome também podem ser usadas para estudar os efeitos de longo prazo de novos recursos. Isso é feito usando o mecanismo de variações do Chrome para reter recursos para uma pequena proporção de usuários, talvez 1% ou menos. Um grupo de restrição pode ser útil para verificar mudanças e efeitos colaterais que só se tornam visíveis ao longo do tempo.
Um grupo de restrição pode ser especialmente importante para mudanças na interface do usuário, em que os usuários provavelmente interagirão com um recurso quando ele for novo, mas podem se comportar de maneira diferente a longo prazo.
Por exemplo, lançamos um seletor de fotos no Chrome, mas o recurso foi temporariamente impedido de uma pequena porcentagem de usuários para comparar os resultados. Enviamos o novo seletor de fotos do Android para uma alta proporção de usuários e, inicialmente, observamos um aumento significativo no número de imagens que esse grupo compartilhava na Web. No entanto, nos seis meses em que tivemos a variação da restrição, vimos o aumento no uso diminuir significativamente. Isso ocorreu porque a disponibilidade do novo seletor de fotos incentivou os sites a adicionar o atributo "aceitar" aos elementos de entrada de arquivo, o que levava a uma experiência melhor para todos os usuários.
Como as variações do Chrome são usadas na validação?
Se a configuração que ajuda a melhorar os recursos e o desempenho do Chrome estiver ativada
(chrome://settings/syncSetup?search=improve
), o Chrome poderá monitorar e enviar métricas automaticamente ao back-end do Chrome, usando um mecanismo conhecido como análise de métricas do usuário (UMA, na sigla em inglês). Consulte exemplos de estatísticas de uso anônimas do Chrome em chromestatus.com/metrics, como a porcentagem de carregamentos de página que utilizam uma propriedade CSS ou um recurso HTML ou JavaScript.
As variações do Chrome são particularmente úteis para comparar estatísticas de um grupo de usuários com outro. Por exemplo, um recurso pode ser ativado para alguns usuários e não para outros, e o Chrome pode comparar as métricas de cada grupo. Essas métricas podem incluir o uso da memória, os tempos de carregamento da página ou o uso de um recurso do navegador. Isso permite que os engenheiros do Chrome comparem o desempenho ou outras métricas entre usuários que têm um recurso ativado, usuários que têm o recurso desativado ou usuários com diferentes variações de recursos.
Testes de campo das variações do Chrome
Cada conjunto de variações de um atributo é chamado de estudo ou teste de campo, e cada um tem uma duração fixa. Quando o estudo de um recurso for encerrado, todos os usuários incluídos em um grupo de comportamento não padrão receberão a configuração padrão do Chrome para o recurso: ativada ou desativada.
A maioria dos recursos que podem ser controlados pelas variações do Chrome corresponde a uma sinalização que pode ser definida na
página chrome://flags
. Como alternativa, se você
executar o Chrome na linha de comando,
poderá usar as sinalizações --enable-features
e --disable-features
para configurar as variações do Chrome.
A sinalização --reset-variation-state
força a redefinição do estado das variações do Chrome para o cliente atual. Isso significa que o cliente pode mover para diferentes grupos de variações do Chrome.
Variações do Chrome para empresas
Para clientes corporativos, o Chrome também oferece a política ChromeVariações para gerenciar as variações. É claro que recomendamos deixar as variações do Chrome ativadas, para que o Chrome possa fornecer rapidamente correções de segurança críticas.