Un meccanismo per consentire a Chrome di testare le nuove funzionalità del browser
Probabilmente hai sentito parlare delle varianti di Chrome, delle prove sul campo di Chrome o forse anche del nome in codice interno, Chrome Finch.
Questi sono tutti nomi per la stessa cosa: un meccanismo per testare nuove funzionalità o modifiche al browser Chrome o a ChromeOS, il sistema operativo Chrome installato sui Chromebook.
A cosa servono le varianti di Chrome?
Le varianti di Chrome consentono a Chrome di attivare una nuova funzionalità, disattivare una funzionalità o provare una modifica a una funzionalità per un sottoinsieme di utenti.
Non tutto ciò che è presente in Chrome viene introdotto utilizzando il meccanismo Varianti di Chrome. Tuttavia, il team di Chrome può utilizzare le varianti di Chrome ogni volta che dobbiamo prestare particolare attenzione quando apporti modifiche o se esiste il rischio che una modifica possa influire sulle prestazioni in modi non previsti. Una "modifica" potrebbe indicare un miglioramento delle prestazioni del codice di Chrome, un aggiornamento dell'aspetto o del funzionamento del browser o, a volte, anche una modifica a un'API JavaScript.
Le varianti di Chrome possono essere utilizzate anche per convalidare un'ipotesi relativa a una modifica o un aggiornamento. Ad esempio, per una percentuale di utenti in un gruppo di varianti di Chrome, abbiamo provato a modificare i parametri del protocollo di rete QUIC per rendere Chrome più veloce alle condizioni reali degli utenti.
Un'altra area in cui potresti riscontrare variazioni di Chrome è l'utilizzo delle prove dell'origine di Chrome. Per impostazione predefinita, una funzionalità di prova dell'origine è attiva su tutte le pagine che forniscono un token di prova valido, ma in alcuni casi vengono utilizzate le varianti di Chrome per controllare l'attivazione di una funzionalità. Ciò significa che una funzionalità di prova dell'origine potrebbe non essere disponibile per determinati utenti, anche quando visitano una pagina che fornisce un token di prova valido. La documentazione e gli aggiornamenti relativi a ogni prova dell'origine includono informazioni sulla percentuale di utenti idonei per l'attivazione di una funzionalità di prova dell'origine.
Come funzionano le varianti di Chrome?
Ogni 30 minuti su computer o dispositivi mobili, oppure ogni volta che avvii Chrome, il browser invia al backend di Chrome una richiesta per recuperare il file di configurazione delle varianti di Chrome, noto come seed delle varianti. In altre parole, esiste un server dedicato per fornire i seed delle varianti di Chrome. Chrome invia una richiesta HTTPS al server e quest'ultimo risponde con un seed compresso delta.
Quando Chrome sul dispositivo contatta il backend delle varianti di Chrome per recuperare il file di origine, fornisce anche informazioni sulla versione di Chrome e sul sistema operativo su cui è in esecuzione. Il file restituito dal backend Varianti di Chrome viene utilizzato per attivare le funzionalità, disattivarle o specificare le varianti di una funzionalità.
Chrome utilizza i dati nel file di origine e un seed di randomizzazione memorizzato localmente per assegnare in modo casuale il browser a un gruppo di varianti. In altre parole, il seed della randomizzazione, combinato con il file originale del backend delle varianti di Chrome, può essere utilizzato per attivare o disattivare le funzionalità nel browser, per un sottoinsieme di utenti. Il browser sul dispositivo tiene traccia del gruppo di varianti a cui appartiene.
Implementazione delle funzionalità e canali di Chrome
Uno degli utilizzi più importanti delle varianti di Chrome è l'applicazione graduale delle modifiche o delle nuove funzionalità a una percentuale di client di Chrome. Questo è fondamentale per un'applicazione complessa come Chrome che ha miliardi di utenti, con migliaia di tipi di dispositivi su più piattaforme e utilizza decine di lingue diverse per milioni di app e siti web diversi.
Chrome riceve feedback preziosi dall'utilizzo e dai test in Chrome Canary, Dev e Beta. Possiamo utilizzare le varianti di Chrome per attivare o disattivare funzionalità all'interno di uno qualsiasi di questi canali di rilascio. Tuttavia, questi canali vengono utilizzati principalmente da sviluppatori e altri esperti. Gli utenti della versione stabile di Chrome interagiscono con Chrome in modo diverso e in quantità molto maggiori, quindi dobbiamo sempre eseguire la convalida sul canale stabile. Questo ci consente di risolvere eventuali problemi riscontrati nel normale utilizzo del browser. Gli ingegneri di Chrome non sono sempre in grado di prevedere la risposta degli utenti reali ai cambiamenti e alle nuove funzionalità su larga scala.
Le varianti di Chrome sono un meccanismo fondamentale per risolvere questo problema, poiché consentono di controllare l'utilizzo e le metriche per la versione stabile di Chrome quando una funzionalità è attivata o disattivata. Misurando l'impatto delle modifiche alla versione stabile di Chrome, possiamo offrire le migliori funzionalità possibili e creare un browser migliore, anche quando i compromessi sono complessi.
Quando gli ingegneri di Chrome utilizzano le varianti di Chrome?
Esistono tre motivi principali per cui Chrome ha bisogno delle varianti di Chrome.
Attivare una nuova funzionalità
L'utilizzo delle varianti di Chrome per controllare l'attivazione di una nuova funzionalità è particolarmente utile per tutto ciò che potrebbe essere in qualche modo più rischioso o che potrebbe influire sulle prestazioni.
Le varianti di Chrome ci consentono di fornire una nuova funzionalità a un sottoinsieme di utenti. I tecnici di Chrome possono quindi verificare eventuali differenze nelle prestazioni o esaminare altri tipi di feedback del gruppo di varianti.
Disattivare una funzionalità
Le varianti di Chrome possono essere utilizzate come meccanismo di sicurezza per disattivare una funzionalità, anche se questo accade raramente.
Ad esempio, una nuova funzionalità di networking potrebbe essere soggetta a un attacco denial of service. Le varianti di Chrome possono essere utilizzate per disattivare rapidamente una funzionalità di questo tipo, poiché la configurazione delle varianti di Chrome viene scaricata ogni 30 minuti e le impostazioni vengono attivate a ogni riavvio di Chrome. Al contrario, l'aggiornamento di Chrome e l'attesa che la nuova versione venga propagata a miliardi di utenti sarebbe molto più lento.
Prova le modifiche a un elemento
Infine, le varianti di Chrome possono essere utilizzate per convalidare modifiche e aggiornamenti. Ad esempio, potremmo ottimizzare la difficoltà del gioco Dino offline in Chrome per rendere l'interazione più divertente.
Le varianti di Chrome possono essere utilizzate anche per studiare gli effetti a lungo termine delle nuove funzionalità. Per farlo, si utilizza il meccanismo delle varianti di Chrome per bloccare le funzionalità per una piccola percentuale di utenti, che potrebbe essere l'1% o meno. Un gruppo di isolamento può essere utile per verificare la presenza di modifiche ed effetti collaterali che diventano visibili solo nel tempo.
Un gruppo di isolamento può essere particolarmente importante per le modifiche dell'interfaccia utente, per cui è probabile che gli utenti interagiscano con una funzionalità quando è nuova, ma che potrebbero comportarsi in modo diverso nel lungo periodo.
Ad esempio, abbiamo lanciato un selettore di foto in Chrome, ma la funzionalità è stata temporaneamente nascosta a una piccola percentuale di utenti per confrontare i risultati. Abbiamo spedito il nuovo selettore di foto Android a un'elevata percentuale di utenti e inizialmente abbiamo riscontrato un aumento significativo del numero di immagini che il gruppo ha condiviso sul web. Tuttavia, nei sei mesi in cui abbiamo avuto la variazione di isolamento, abbiamo osservato una diminuzione significativa dell'incremento dell'utilizzo. Questo perché la disponibilità del nuovo selettore di foto ha incoraggiato i siti ad aggiungere l'attributo di accettazione agli elementi di input dei file, migliorando l'esperienza per tutti gli utenti.
Come vengono utilizzate le varianti di Chrome per la convalida?
Se l'impostazione che consente di migliorare le funzionalità e le prestazioni di Chrome è attivata
(chrome://settings/syncSetup?search=improve
), Chrome può monitorare e inviare automaticamente
metriche al backend di Chrome, utilizzando un meccanismo noto come Analisi delle metriche utente (UMA). Puoi visualizzare esempi di statistiche anonime sull'utilizzo di Chrome all'indirizzo chromestatus.com/metrics, ad esempio la percentuale di caricamenti pagina che utilizzano una proprietà CSS o una funzionalità HTML o JavaScript.
Le varianti di Chrome sono particolarmente utili per confrontare le statistiche di un gruppo di utenti con un altro. Ad esempio, una funzionalità può essere attivata per alcuni utenti e non per altri e Chrome può confrontare le metriche per ogni gruppo. Queste metriche potrebbero includere utilizzo della memoria, tempi di caricamento delle pagine o l'utilizzo di una funzionalità del browser. Ciò consente agli ingegneri di Chrome di confrontare le prestazioni o altre metriche tra utenti che hanno attivato una funzionalità, utenti per cui la funzionalità è disattivata o utenti con diverse varianti di funzionalità.
Prove sul campo delle varianti di Chrome
Ogni insieme di varianti di una caratteristica è chiamato studio o prova sul campo e ognuna ha una durata fissa. Al termine di uno studio relativo a una funzionalità, tutti gli utenti inclusi in un gruppo di comportamenti non predefinito ricevono l'impostazione predefinita di Chrome per la funzionalità, attivata o disattivata.
La maggior parte delle funzionalità che possono essere controllate dalle varianti di Chrome corrisponde a un flag che può essere impostato dalla pagina chrome://flags
. In alternativa, se
esegui Chrome dalla riga di comando,
puoi utilizzare i flag --enable-features
e --disable-features
per configurare le varianti di Chrome.
Il flag --reset-variation-state
forza la reimpostazione dello stato delle varianti di Chrome per il client corrente. Ciò significa che il client può passare a diversi gruppi di varianti di Chrome.
Varianti di Chrome per le aziende
Per i clienti aziendali, Chrome fornisce anche il criterio ChromeVariants per gestire le varianti di Chrome. Naturalmente, ti consigliamo di lasciare attive le varianti di Chrome, in modo che Chrome possa fornire rapidamente correzioni di sicurezza critiche.