Publié le 3 avril 2025
Lorsque nous déployons une nouvelle fonctionnalité dans Chrome, nous effectuons de nombreux contrôles pour nous assurer qu'elle fonctionne, qu'elle est conforme et qu'elle est fiable. L'une de ces mesures est les expériences Finch. Ne vous laissez pas tromper par le terme "test" dans son nom. Il n'est pas dangereux, bien au contraire. Les déploiements Finch nous aident à ajouter de manière sécurisée des fonctionnalités qui pourraient potentiellement entraîner des problèmes de compatibilité, car ils nous permettent de désactiver rapidement une fonctionnalité en cas de problème imprévu. Cet article explique comment et pourquoi nous utilisons Finch pour certaines versions de fonctionnalités dans Chrome.
En règle générale, pour activer une fonctionnalité dans Chrome, il suffit d'activer un booléen dans Chrome. Lorsqu'une nouvelle fonctionnalité est "livrée", cela signifie simplement que son état par défaut est défini sur "Activé" pour tous les utilisateurs. Pour ce faire, vous pouvez procéder de plusieurs manières:
- Activer la fonctionnalité "dans le code": cela signifie que le paramètre de l'exécutable Chrome lui-même est activé par défaut.
- Activer la fonctionnalité "par phase d'évaluation de l'origine": le système de phase d'évaluation de l'origine permet à un site particulier d'activer une fonctionnalité particulière sur ce site uniquement pour tous les utilisateurs Chrome.
- Activer la fonctionnalité "à l'aide de Finch": Chrome récupère régulièrement un fichier de configuration à partir d'un serveur. Ce fichier peut contenir des instructions permettant d'activer ou de désactiver une fonctionnalité.
- Un "interrupteur Finch": est l'inverse de l'activation de l'option "Utiliser Finch". Dans ce cas, la fonctionnalité est activée "dans le code", mais est ensuite désactivée à l'aide du système Finch, généralement en raison de problèmes détectés après le lancement.
Cas d'utilisation de Finch
L'objet de cet article de blog est Finch. Nous n'allons donc pas nous attarder sur l'activation de l'option "in code" ou "origin trial". Cependant, Finch présente plusieurs cas d'utilisation intéressants.
Tester sur un petit groupe d'utilisateurs (test A/B)
Finch est souvent utilisé pour effectuer des tests A/B d'une fonctionnalité ou d'une optimisation. Dans ce cas, une fonctionnalité est activée pour un petit pourcentage d'utilisateurs afin de collecter des données sur la différence de performances, de comportement ou d'utilisation entre les deux états.
Par exemple, nous avons lancé les décodes d'images spéculatifs lors d'un test A/B. Cette amélioration des performances ne devrait pas être perceptible par les développeurs ni les utilisateurs, sauf que Chrome chargera les pages plus rapidement. Toutefois, pour nous assurer qu'aucun événement inattendu ne s'est produit et pour pouvoir mesurer précisément l'impact sur les performances, nous avons utilisé Finch pour effectuer un test A/B.
Désactiver une fonctionnalité problématique
Pour la sécurité du produit et l'expérience utilisateur, Chrome peut utiliser le système Finch pour désactiver à distance les fonctionnalités problématiques qui ont été activées "dans le code". Par exemple, si une fonctionnalité était activée par défaut, mais que des problèmes ne sont apparus qu'après que Chrome a atteint l'état stable, nous devons pouvoir désactiver rapidement cette fonctionnalité pour que les utilisateurs et les entreprises retrouvent un état sécurisé. Cela peut être nécessaire en cas de bugs non détectés dans la fonctionnalité ou si une fonctionnalité endommage des sites existants pour des raisons imprévues.
Activer des fonctionnalités à risque de manière plus sécurisée
Pour la plupart des fonctionnalités lancées par Chrome, le risque est faible, car nous pouvons tester et vérifier que le nouveau code fonctionne sur tous les sites.
Cependant, le lancement de fonctionnalités peut parfois s'avérer très risqué en raison de problèmes de compatibilité inconnus ou d'autres interactions délicates. Dans ce cas, le système Finch peut être utilisé pour activer la fonctionnalité, plutôt que de la laisser en réserve en tant que bouton d'arrêt.
Par exemple, la "relaxation" de l'analyseur HTML était une modification liée à la nouvelle fonctionnalité de sélection personnalisable, qui permettait de placer plus de contenu qu'auparavant dans un élément <select>
. Étant donné que ce changement peut entraîner l'arrêt de sites existants, nous avons dû le déployer avec précaution.
Activer des fonctionnalités à l'aide de Finch peut être plus sûr que de les supprimer à l'aide de Finch, car Finch ne touche pas 100% des utilisateurs pour diverses raisons. Par exemple, certaines entreprises ont une règle qui interdit complètement la configuration de Finch. Ces utilisateurs resteraient exposés au risque si une fonctionnalité est activée dans le code, puis désactivée à l'aide de Finch, car ils ne recevront pas le paramètre Finch et la fonctionnalité restera activée. En activant la fonctionnalité à l'aide de Finch, nous pouvons garantir la possibilité de la désactiver pour tous les utilisateurs en cas d'urgence.
Comment savoir si vous participez à un test Finch ?
Les utilisateurs ont du mal à le faire directement. Nous vous recommandons de contacter un ingénieur Chrome (généralement dans le cadre d'un bug Chromium) et de lui envoyer votre "liste de variantes". Il s'agit d'une liste de versions codées spéciales de tous les paramètres Finch pour un navigateur donné. Vous pouvez le récupérer facilement:
- Accédez à
chrome://version
. - Copiez la liste de texte complète (elle peut être très longue) affichée à côté de "Variations actives".
- Collez ce texte dans un fichier texte (par exemple,
variations.txt
) et joignez-le à un bug.
Grâce à cette liste de variantes, les ingénieurs Chrome peuvent la décoder et voir quelles fonctionnalités sont activées ou désactivées dans votre navigateur.
Que se passe-t-il lorsque le test Finch atteint 100% et est prêt à être déployé ?
Une fois que nous sommes convaincus que notre test est "réussi" et que la fonctionnalité en question ne présente aucun risque pour les développeurs ni pour les utilisateurs, nous l'activons toujours "dans le code". À ce stade, vous pouvez définir une date de fin pour la configuration Finch afin qu'elle ne soit plus appliquée aux navigateurs après la version dans laquelle la fonctionnalité a été activée dans le code.