Lorsque les ingénieurs souhaitent apporter une modification au moteur de rendu Blink, ils publient un message sur la liste de diffusion blink-dev pour obtenir l'autorisation de procéder. Ces messages de la liste de diffusion sont appelés intentions Blink.
Les navigateurs Web basés sur Chromium utilisent le moteur de rendu Blink pour transformer le code et les ressources en pages Web que vous pouvez afficher et avec lesquelles vous pouvez interagir.
Découvrez comment fonctionnent les intentions Blink, pourquoi elles sont importantes et comment les nouvelles fonctionnalités sont intégrées à Blink.
Chromium et Blink
Chromium est le projet de navigateur Open Source sur lequel Chrome et d'autres navigateurs et frameworks sont basés. Blink est le moteur de rendu utilisé par Chromium.
Pour qu'une nouvelle fonctionnalité soit intégrée à Blink, elle doit passer par le processus de développement ouvert du projet Chromium. Une "nouvelle fonctionnalité" est toute modification ou ajout au code ou à l'architecture du navigateur. Il peut s'agir d'une nouvelle API JavaScript, d'une amélioration significative des performances dans le code Blink ou d'une autre modification de l'apparence ou du fonctionnement du navigateur.
Un processus ouvert et collaboratif
Chromium est un projet vaste et complexe qui compte des milliers de contributeurs. Lorsque des modifications sont apportées à Chromium, chaque étape est l'occasion d'inviter l'écosystème Web plus large à commenter la conception et l'implémentation.
Dans la mesure du possible, les nouvelles fonctionnalités doivent être interopérables sur la plate-forme Web et ne pas être implémentées uniquement sur un seul navigateur. Les développeurs Web n'aiment pas les surprises : lorsque les navigateurs ne fonctionnent pas comme prévu ou lorsque vous devez écrire du code différent pour différents navigateurs et plates-formes. Les intentions Blink permettent de structurer et de réguler le processus de modification, de rendre les modifications plus prévisibles et moins surprenantes, ce qui est bénéfique pour les développeurs Web.
Pour les utilisateurs, les fournisseurs de navigateurs doivent veiller à ce que les modifications n'entraînent pas l'arrêt du fonctionnement des sites Web. Les propriétaires de sites cessent souvent de les gérer. Certains sites n'ont pas été mis à jour depuis des décennies. Les fournisseurs de navigateurs doivent en tenir compte lorsqu'ils apportent des modifications susceptibles de provoquer des problèmes.
De l'idée à la proposition
Les propositions de modifications et de mises à jour de la plate-forme Web sont issues de recherches : consultation des utilisateurs, des entreprises, des ingénieurs de navigateurs, des développeurs Web et d'autres parties prenantes. Cette recherche permet à l'équipe Chrome de déterminer ce qui manque à la plate-forme ou ce qui doit être modifié. Au départ, une proposition de modification ou de nouvelle fonctionnalité sur la plate-forme Web n'est qu'un texte sur une page. Les ingénieurs partagent des documents pour obtenir les commentaires et les discussions de leurs collègues.
Exemple : FedCM
Federated Credential Management (FedCM) est une API qui offre une approche axée sur la confidentialité et conviviale pour l'inscription et la connexion des utilisateurs, appelée identité fédérée. Par exemple, cela s'applique à Se connecter avec Google et à d'autres connexions sociales.
Pour créer une API de navigateur, la première étape consiste à préparer une proposition pour une discussion publique. La proposition de FedCM a été publiée sur GitHub sous forme d'article explicatif. Tout le monde est invité à poser des questions ou à commenter les conceptions de fonctionnalités en créant un problème GitHub dans le dépôt de l'article explicatif. Les commentaires peuvent inclure des descriptions de développeurs concernant des cas d'utilisation supplémentaires, des contraintes, des idées d'amélioration ou un engagement de soutien.
Une fois qu'une proposition est adoptée par un organisme de normalisation, tel que le W3C, les parties prenantes peuvent participer à des discussions et regarder des présentations dans des groupes de normes Web, tels que les groupes de travail du W3C.
Intentions Blink : étapes clés et progrès
Pour chaque étape clé, lorsque les ingénieurs travaillent sur une nouvelle fonctionnalité ou une modification de le moteur de rendu Blink, ils publient un message dans le groupe de discussion blink-dev, expliquant qu'ils ont l'intention de passer à la phase suivante de l'implémentation d' une fonctionnalité. Ces messages sont appelés "intentions". Tout le monde peut s'abonner au groupe blink-dev pour être informé des progrès réalisés sur les nouvelles fonctionnalités de Blink ou s'abonner à une fonctionnalité individuelle pour recevoir des mises à jour.
Intention de créer un prototype
À ce stade, les ingénieurs Chromium peuvent commencer à implémenter une fonctionnalité. Cela signifie que la fonctionnalité de prototype peut être mise à la disposition des développeurs pour des tests derrière un indicateur de fonctionnalité, d'abord dans Chrome Canary, puis dans d'autres versions disponibles. Tout utilisateur peut définir un indicateur à partir de la page chrome://flags pour activer et tester une fonctionnalité dans son navigateur.
Toutefois, tous les indicateurs ne peuvent pas être définis à partir de la page chrome://flags. Pour un contrôle plus précis, vous pouvez exécuter Chrome à partir d'un terminal à l'aide d'indicateurs de ligne de commande. N'oubliez pas que certaines nouvelles fonctionnalités ne sont disponibles que lorsque la fonctionnalité est disponible pour les tests dans Chrome Canary, bien que cela soit assez rare. Certaines fonctionnalités n'ont pas leur propre indicateur, mais elles sont disponibles si l'indicateur experimental-web-platform-features est activé. C'est généralement le cas pour les fonctionnalités "plus petites" qui ne prennent pas plus de trois à six mois à implémenter, au maximum.
Recueillir des commentaires sur les prototypes
Une fois le prototypage d'une nouvelle fonctionnalité commencé, les ingénieurs Chromium invitent à la discussion et à l'expérimentation précoce. Les commentaires à ce stade sont essentiels pour valider et itérer les propositions. Les bugs Chromium sont l' endroit où commenter l'implémentation dans Chrome.
Intention d'expérimenter : tester en conditions réelles
Un message d'intention d'expérimenter sur blink-dev est une étape suivante facultative si les ingénieurs Chrome souhaitent demander à exécuter un essai Origin Trial.
Les essais Origin Trial permettent de tester une fonctionnalité nouvelle ou expérimentale de la plate-forme Web. Vous vous inscrivez à l'essai Origin Trial d'une fonctionnalité, puis vous obtenez un jeton pour l'essai. La fonctionnalité sera activée sur n'importe quelle page fournissant le jeton.
Approbation des propriétaires de l'API Blink
Pour que l'implémentation d'une fonctionnalité progresse, les propriétaires de l'API Blink doivent donner leur approbation en répondant à une intention avec un message "looks good to me" (cela me semble bien), appelé LGTM.
Les propriétaires de l'API Blink sont un petit groupe de contributeurs Chromium, très expérimentés avec la plate-forme Web et ses API, et reconnus par la communauté Blink comme étant en règle, avec un engagement envers la mission et les valeurs de Blink. En plus d'approuver (ou non) les fonctionnalités pour qu'elles soient implémentées, les propriétaires de l'API supervisent le processus d'intention Blink lui-même.
Une intention d'expérimenter doit obtenir au moins un LGTM de la part des propriétaires de l'API.
La valeur des essais Origin Trial
Les développeurs peuvent s'inscrire à l'essai Origin Trial d'une fonctionnalité, puis la tester en production dans des environnements réels, avec de vrais utilisateurs, sans que les utilisateurs aient à effectuer d'action pour que la fonctionnalité soit activée. Les développeurs peuvent partager les résultats de leurs tests, ce qui fournit des informations et des données précieuses pour itérer et faire évoluer la fonctionnalité.
Intention de lancer : l'étape clé finale
L'intention de lancer indique qu'une fonctionnalité est désormais terminée et prête à être implémentée pour une disponibilité générale, pour tous les utilisateurs de la version stable de Chrome sans avoir besoin d'un indicateur ni d'un jeton d'essai. Une intention de lancer doit obtenir trois LGTM de la part des propriétaires de l'API avant que l'implémentation puisse se poursuivre.
Déploiement de nouvelles fonctionnalités
Une fois approuvée, une fonctionnalité est fusionnée dans une prochaine version, puis progresse dans les versions disponibles de Chrome. Les tests et l'implémentation de nouvelles fonctionnalités sont souvent gérés avec un soin particulier. Certaines fonctionnalités sont déployées progressivement auprès d'une proportion croissante d'utilisateurs. Les fonctionnalités peuvent également être annulées et retravaillées en cas d'effets secondaires inattendus.
Gérer l'abandon et la suppression
Il existe deux autres types d'intention Blink :
- Intention d'abandonner
- Intention de supprimer
Cela peut sembler un peu triste, mais c'est en fait essentiel au succès du développement de Blink.
Une intention d'abandonner est publiée par les ingénieurs lorsqu'ils souhaitent commencer à avertir les développeurs qu'une fonctionnalité est prévue pour être abandonnée. Par exemple, en fournissant une assistance et des informations sur l'abandon dans la console des Outils pour les développeurs Chrome.
Une intention de supprimer est publiée lorsque les ingénieurs prévoient de désactiver le code par défaut.
L'importance de l'abandon et de la suppression
L'abandon et la suppression sont essentiels à la santé de la plate-forme Web. Ils permettent à Chrome de supprimer les fonctionnalités qui ne fonctionnent pas correctement pour les utilisateurs finaux ou les développeurs Web, et contribuent à réduire la complexité de la base de code. Par exemple, des problèmes de conception d'AppCache ont été découverts une fois qu'il a été utilisé sur des sites de production dans des navigateurs stables, et l' API a finalement été supprimée. Les abandons et les suppressions contribuent également à assurer la sécurité de Chrome en réduisant les vecteurs d'attaque potentiels.
Comme pour toutes les intentions Blink, l'équipe Chrome fait de son mieux pour prendre des décisions avec soin. Elle examine les taux d'utilisation des fonctionnalités et d'autres données avant de continuer. La barre de suppression des fonctionnalités est en fait incroyablement élevée, et une fonctionnalité ne sera supprimée que si elle est utilisée par une très petite proportion d'utilisateurs et si de meilleures alternatives sont disponibles.
Se tenir informé des intentions Blink
Vous pouvez suivre l'avancement des fonctionnalités sur État de Chrome, où vous pouvez vous abonner aux mises à jour, signaler des bugs et trouver d'autres ressources.
Pour suivre les nouvelles fonctionnalités, suivez le blog Chromium et rejoignez le groupe de discussion blink-dev. Le groupe peut générer beaucoup d'e-mails. Vous préférerez peut-être vous abonner à une seule intention. Vous pouvez consulter une feuille de calcul des intentions Blink.
Si vous aimez vraiment les intentions Blink, vous pouvez même vous appuyer sur les services automatisés de suivi des intentions Blink.