Un mécanisme permettant à Chrome de tester de nouvelles fonctionnalités du navigateur
Vous avez peut-être déjà entendu parler des variantes Chrome, des Chrome Field Trials, ou même du nom de code interne, Chrome Finch.
Tous ces noms désignent la même chose: un mécanisme permettant de tester de nouvelles fonctionnalités ou des modifications du navigateur Chrome, ou de ChromeOS, le système d'exploitation Chrome exécuté sur les Chromebooks.
À quoi servent les variantes Chrome ?
Les variantes Chrome permettent à Chrome d'activer une nouvelle fonctionnalité, de désactiver une fonctionnalité ou de tester une modification pour un sous-ensemble d'utilisateurs.
Toutes les fonctionnalités de Chrome ne sont pas introduites à l'aide du mécanisme des variantes Chrome. Toutefois, l'équipe Chrome peut les utiliser chaque fois qu'une modification est nécessaire ou qu'elle risque d'affecter les performances de manière inattendue. Une "modification" peut signifier une amélioration des performances du code de Chrome, une mise à jour de l'apparence ou du fonctionnement du navigateur, voire, parfois, une modification d'une API JavaScript.
Les variantes Chrome peuvent également servir à valider une hypothèse sur une modification ou une mise à jour. Par exemple, pour un pourcentage d'utilisateurs d'un groupe de variantes Chrome, nous avons essayé d'ajuster les paramètres du protocole réseau QUIC pour rendre Chrome plus rapide dans les conditions réelles du réseau.
Les variantes Chrome peuvent également s'afficher dans les phases d'évaluation de Chrome. Par défaut, une fonctionnalité d'évaluation est activée sur toutes les pages qui fournissent un jeton d'essai valide, mais dans certains cas, les variantes Chrome sont utilisées pour contrôler l'activation d'une fonctionnalité. Cela signifie qu'une fonctionnalité d'essai Origin Trial peut ne pas être disponible pour certains utilisateurs, même lorsqu'ils consultent une page qui fournit un jeton d'essai valide. Des informations sur la proportion d'utilisateurs pouvant bénéficier d'une phase d'évaluation sont fournies avec la documentation et les mises à jour de chaque phase d'évaluation.
Comment fonctionnent les variantes Chrome ?
Toutes les 30 minutes sur ordinateur ou sur mobile, ou chaque fois que vous démarrez Chrome, le navigateur envoie une requête au backend Chrome pour obtenir le fichier de configuration des variantes Chrome, appelé graine des variantes. En d'autres termes, il existe un serveur dédié pour fournir les sources des variantes Chrome. Chrome envoie une requête HTTPS au serveur, qui répond par une graine delta-compressed.
Lorsque Chrome sur votre appareil contacte le backend des variantes Chrome pour obtenir le fichier source, celui-ci fournit également des informations sur la version de Chrome et le système d'exploitation sur lequel il est exécuté. Le fichier renvoyé par le backend des variantes Chrome permet d'activer ou de désactiver des fonctionnalités, ou de spécifier des variantes d'une fonctionnalité.
Chrome utilise les données du fichier source et une graine de randomisation stockée localement pour attribuer le navigateur de manière aléatoire à un groupe de variantes. En d'autres termes, la graine de randomisation, combinée au fichier source du backend des variantes Chrome, peut être utilisée pour activer ou désactiver des fonctionnalités dans le navigateur pour un sous-ensemble d'utilisateurs. Le navigateur installé sur votre appareil garde une trace du groupe de variantes auquel il appartient.
Déploiement des fonctionnalités et versions de Chrome
L'une des utilisations les plus importantes des variantes Chrome consiste à apporter progressivement des modifications ou de nouvelles fonctionnalités à un certain pourcentage de clients Chrome. C'est essentiel pour une application complexe telle que Chrome qui compte des milliards d'utilisateurs, avec des milliers d'appareils sur plusieurs plates-formes et qui utilisent des dizaines de langues différentes pour des millions d'applications et de sites Web.
Chrome reçoit de précieux commentaires de son utilisation et de ses tests dans Chrome Canary, en développement et en version bêta. Nous pouvons utiliser les variantes Chrome pour activer ou désactiver des fonctionnalités dans n'importe laquelle de ces versions disponibles. Cependant, ces canaux sont principalement utilisés par les développeurs et d'autres spécialistes. Les utilisateurs de la version stable de Chrome interagissent différemment avec Chrome, et sont beaucoup plus nombreux. Nous devons donc toujours valider la version stable. Cela nous permet de résoudre les problèmes rencontrés lors d'une utilisation normale du navigateur. Les ingénieurs Chrome ne sont pas toujours en mesure de prédire à grande échelle la réaction des utilisateurs réels aux changements et aux nouvelles fonctionnalités.
Les variantes Chrome sont un mécanisme essentiel pour vous aider. Elles permettent de vérifier l'utilisation et les métriques de la version stable de Chrome avec une fonctionnalité activée ou désactivée. En mesurant l'impact des modifications apportées à la version stable de Chrome, nous pouvons proposer les meilleures fonctionnalités possibles et créer un meilleur navigateur, même lorsque les compromis sont complexes.
Quand les ingénieurs Chrome utilisent-ils les variantes Chrome ?
Chrome a besoin des variantes Chrome pour trois raisons principales.
Activer une nouvelle fonctionnalité
L'utilisation des variantes Chrome pour contrôler l'activation d'une nouvelle fonctionnalité est particulièrement utile en cas de risque plus risqué ou d'affecter les performances.
Les variantes Chrome nous permettent de proposer une nouvelle fonctionnalité à un sous-ensemble d'utilisateurs. Les ingénieurs Chrome peuvent ensuite rechercher les différences de performances ou examiner d'autres types de commentaires du groupe de variantes.
Désactiver une fonctionnalité
Les variantes Chrome peuvent servir de mécanisme de sécurité pour désactiver une fonctionnalité, bien que cela se produise rarement.
Par exemple, une nouvelle fonctionnalité de mise en réseau peut être sujette à une attaque par déni de service. Les variantes Chrome permettent de désactiver rapidement une fonctionnalité de ce type, car la configuration des variantes Chrome est téléchargée toutes les 30 minutes et les paramètres sont activés à chaque redémarrage de Chrome. En revanche, mettre à jour Chrome et attendre que la nouvelle version soit propagée à des milliards d'utilisateurs serait beaucoup plus lente.
Essayer de modifier un élément géographique
Enfin, les variantes Chrome peuvent être utilisées pour valider les modifications et les mises à jour. Par exemple, nous pourrions ajuster la difficulté du jeu Chrome Dino hors connexion pour rendre l'interaction plus amusante.
Les variantes Chrome permettent également d'étudier les effets à long terme de nouvelles fonctionnalités. Pour ce faire, le mécanisme des variantes Chrome limite les fonctionnalités à une petite proportion d'utilisateurs (1% ou moins). Un groupe de contrôle peut être utile pour vérifier les modifications et les effets secondaires qui ne deviennent visibles qu'au fil du temps.
Un groupe non exposé à l'annonce peut être particulièrement important pour les modifications de l'interface utilisateur, car les utilisateurs sont susceptibles d'interagir avec une fonctionnalité lorsqu'elle est nouvelle, mais peuvent se comporter différemment à long terme.
Par exemple, nous avons lancé un sélecteur de photos dans Chrome, mais cette fonctionnalité a été temporairement mise à l'écart d'un petit pourcentage d'utilisateurs afin de comparer les résultats. Nous avons lancé le nouveau sélecteur de photos Android auprès d'une grande partie de nos utilisateurs. Au début, nous avons constaté une augmentation significative du nombre d'images partagées par le groupe sur le Web. Toutefois, au cours des six mois où nous avons observé la variation de type "holdback", nous avons constaté une baisse significative de l'augmentation de l'utilisation. En effet, la disponibilité du nouveau sélecteur de photos encouragé les sites à ajouter l'attribut d'acceptation aux éléments d'entrée de fichier, ce qui a amélioré l'expérience de tous les utilisateurs.
Comment les variantes Chrome sont-elles utilisées pour la validation ?
Si le paramètre visant à améliorer les fonctionnalités et les performances de Chrome est activé (chrome://settings/syncSetup?search=improve
), Chrome peut surveiller et envoyer automatiquement des métriques au backend Chrome, à l'aide d'un mécanisme appelé analyse des métriques utilisateur (UMA, User Metrics Analysis). Vous trouverez des exemples de statistiques d'utilisation anonymes de Chrome sur chromestatus.com/metrics, comme le pourcentage de chargements de pages qui utilisent une propriété CSS, ou une fonctionnalité HTML ou JavaScript.
Les variantes Chrome sont particulièrement utiles pour comparer les statistiques d'un groupe d'utilisateurs à celles d'un autre. Par exemple, une fonctionnalité peut être activée pour certains utilisateurs et pas pour d'autres, et Chrome peut comparer les métriques de chaque groupe. Ces métriques peuvent inclure l'utilisation de la mémoire, les temps de chargement des pages ou l'utilisation d'une fonctionnalité du navigateur. Cela permet aux ingénieurs Chrome de comparer les performances ou d'autres métriques entre les utilisateurs pour lesquels une fonctionnalité est activée, ceux pour lesquels la fonctionnalité est désactivée ou ceux ayant des variantes de fonctionnalités différentes.
Essais sur le terrain des variantes Chrome
Chaque ensemble de variantes d'une caractéristique est appelé "étude" ou test en conditions réelles, et chacun d'eux a une durée fixe. Lorsqu'une étude est terminée pour une fonctionnalité, tous les utilisateurs inclus dans un groupe de comportements autre que celui par défaut reçoivent le paramètre Chrome par défaut de la fonctionnalité: activé ou désactivé.
La plupart des fonctionnalités pouvant être contrôlées par les variantes Chrome correspondent à un indicateur pouvant être défini à partir de la page chrome://flags
. Si vous exécutez Chrome à partir de la ligne de commande, vous pouvez également utiliser les indicateurs --enable-features
et --disable-features
pour configurer les variantes Chrome.
L'indicateur --reset-variation-state
force la réinitialisation de l'état des variantes Chrome pour le client actuel. Cela signifie que le client peut passer à différents groupes de variantes Chrome.
Variantes Chrome pour les entreprises
Pour les entreprises, Chrome propose également la règle ChromeVariations pour gérer les variantes Chrome. Bien entendu, nous vous recommandons de laisser les variantes Chrome activées, afin que Chrome puisse rapidement fournir les correctifs de sécurité essentiels.