Wat zijn Blink Intents?

Wanneer engineers een wijziging in de Blink-renderingengine willen aanbrengen, plaatsen ze een bericht op de blink-dev-mailinglijst om goedkeuring te krijgen. Deze berichten op de mailinglijst worden Blink Intents genoemd.

Chromium -gebaseerde webbrowsers gebruiken de Blink-renderengine om code en bronnen om te zetten in webpagina's die u kunt bekijken en waarmee u kunt interacteren.

De blink-dev mailinglijst .

Ontdek hoe Blink Intents werken, waarom ze belangrijk zijn en hoe nieuwe functies hun weg vinden naar Blink.

Chromium is het open-sourcebrowserproject waarop Chrome en enkele andere browsers en frameworks zijn gebouwd. Blink is de rendering engine die door Chromium wordt gebruikt.

Om een ​​nieuwe functie in Blink te implementeren, moet deze het open ontwikkelingsproces van het Chromium-project doorlopen. Een "nieuwe functie" is elke wijziging of toevoeging aan de browsercode of -architectuur. Dat kan een nieuwe JavaScript API zijn, een aanzienlijke prestatieverbetering in de Blink-code, of een andere wijziging in het uiterlijk of de functionaliteit van de browser.

Een open en samenwerkend proces

Chromium is een enorm, complex project met duizenden bijdragers. Elke verandering in Chromium is een kans om het bredere webecosysteem te vragen om commentaar te leveren op het ontwerp en de implementatie.

Waar mogelijk moeten nieuwe functies interoperabel zijn op het hele webplatform en niet uitsluitend in één browser worden geïmplementeerd. Webontwikkelaars willen geen verrassingen: wanneer browsers niet werken zoals verwacht, of wanneer u uiteindelijk verschillende code voor verschillende browsers en platforms moet schrijven. Blink Intents helpen het wijzigingsproces te structureren en te reguleren, waardoor wijzigingen voorspelbaarder en minder verrassend zijn, wat gunstig is voor webontwikkelaars.

Voor gebruikers moeten browserleveranciers erop letten dat wijzigingen er niet toe leiden dat websites niet meer werken. Website-eigenaren stoppen vaak met het onderhouden van websites. Sommige websites zijn al tientallen jaren niet meer bijgewerkt! Browserleveranciers moeten hier rekening mee houden bij het doorvoeren van wijzigingen die tot problemen kunnen leiden.

Van idee tot voorstel

Voorstellen voor wijzigingen en updates van het webplatform komen voort uit onderzoek: overleg met gebruikers, bedrijven, browserontwikkelaars, webontwikkelaars en andere belanghebbenden. Dit onderzoek stelt het Chrome-team in staat om te bepalen wat er ontbreekt aan het platform of wat er moet veranderen. Een voorstel voor een wijziging of een nieuwe functie op het webplatform bestaat in eerste instantie slechts uit woorden op een pagina. Ontwikkelaars delen documenten voor feedback en discussie met hun collega's.

Een voorbeeld: FedCM

Federated Credential Management ( FedCM ) is een API die nieuwe en betere mechanismen biedt voor platforms die de registratie en aanmelding van gebruikers beheren, ook wel federatieve identiteit genoemd. Dit kan bijvoorbeeld wanneer u 'Aanmelden met Google' of 'Aanmelden met GitHub' selecteert.

Zodra een voorstel zoals FedCM klaar is voor publieke discussie, wordt het als explainer op GitHub gepubliceerd. Op dat moment kan iedereen een vraag stellen of een opmerking plaatsen over het ontwerp van een feature door een issue aan te maken in de explainer repository op GitHub. Feedback kan aanvullende use cases of beperkingen beschrijven, ideeën voor verbeteringen aandragen of gewoon steun betuigen.

De FedCM-uitleg op GitHub .

Zodra een voorstel door een standaardisatie-instelling, zoals het W3C , is aangenomen, kunnen belanghebbenden deelnemen aan discussies en presentaties bekijken in webstandaardgroepen zoals de W3C Working Groups .

Voor elke mijlpaal waarin engineers werken aan een nieuwe feature of een wijziging in de Blink-renderingengine, publiceren ze een bericht in de blink-dev-discussiegroep , waarin ze uitleggen dat ze van plan zijn om door te gaan naar de volgende fase, richting de implementatie van een feature. Deze berichten worden "intents" genoemd. Iedereen kan zich abonneren op de blink-dev-groep om op de hoogte te blijven van de voortgang van nieuwe features in Blink, of zich abonneren op een individuele feature voor updates.

Intentie tot prototype: het eerste controlepunt

Op dit punt kunnen Chromium-engineers beginnen met het implementeren van een functie. Dit betekent dat de prototypefunctionaliteit van de functie beschikbaar kan worden gesteld voor ontwikkelaarstests achter een feature flag , aanvankelijk in Chrome Canary en vervolgens via andere releasekanalen. Elke gebruiker kan een flag instellen op de pagina chrome://flags om een ​​functie in zijn of haar browser te activeren en te testen.

Niet alle vlaggen kunnen echter worden ingesteld via de pagina chrome://flags. Voor meer gedetailleerde controle kunt u Chrome starten vanuit een terminal met behulp van vlaggen op de opdrachtregel. Houd er rekening mee dat sommige nieuwe functies pas beschikbaar zijn nadat de functie is uitgebracht voor tests in Chrome Canary, hoewel dit vrij zeldzaam is. Sommige functies hebben geen eigen vlag, maar worden wel beschikbaar als de vlag experimental-web-platform-features is ingeschakeld. Dit is over het algemeen het geval voor "kleinere" functies waarvan de implementatie maximaal drie tot zes maanden in beslag neemt.

Feedback verzamelen op prototypes

Zodra de prototypeontwikkeling van een nieuwe functie is begonnen, nodigen Chromium-engineers discussie en vroege experimenten uit. Feedback is in deze fase cruciaal voor het valideren en itereren van voorstellen. Chromium-bugs zijn dé plek om commentaar te geven op de implementatie in Chrome.

Maak een probleem in de Chromium Issue Tracker .

Experimenteerintentie: testen in de echte wereld

Een 'Intent to Experiment'-bericht op blink-dev is een optionele volgende stap als Chrome-engineers een oorsprongsproef willen uitvoeren.

Experimenteerintentie voor FedCM .

Origin trials zijn een manier om een ​​nieuwe of experimentele functie op een webplatform te testen. U registreert zich voor de origin trial van een functie en ontvangt vervolgens een token voor de proefperiode. De functie wordt geactiveerd op elke pagina die de token aanbiedt.

Een lijst met beschikbare Chrome Origin-proefversies .

Om voortgang te boeken met de implementatie van een functie, moeten de eigenaren van de Blink API hun goedkeuring geven door te reageren op een intentie met een "ziet er goed uit"-bericht, ook wel een LGTM genoemd.

De Blink API-eigenaren vormen een kleine groep Chromium-medewerkers met veel ervaring met het webplatform en de bijbehorende API's. De Blink-community heeft erkend dat ze een goede reputatie hebben en zich inzetten voor de missie en waarden van Blink. Naast het goedkeuren (of afwijzen!) van de implementatie van functies, houden de API-eigenaren toezicht op het Blink Intent-proces zelf.

Een Intent to Experiment moet minimaal één LGTM krijgen van API-eigenaren.

LGTM's over het FedCM Intent to Experiment-bericht .

De waarde van oorsprongsproeven

Ontwikkelaars kunnen zich aanmelden voor de oorspronkelijke proefperiode van een functie en de functie vervolgens in productie testen in praktijkomgevingen, met echte gebruikers – zonder dat gebruikers actie hoeven te ondernemen om de functie te activeren. Ontwikkelaars kunnen de resultaten van hun tests delen, wat waardevolle inzichten en gegevens oplevert die kunnen helpen bij het itereren en doorontwikkelen van de functie.

Intentie tot verzending: de laatste mijlpaal

De Intent to Ship geeft aan dat een functie nu voltooid is en klaar is om te worden geïmplementeerd voor algemene beschikbaarheid, voor alle gebruikers in Chrome Stable, zonder dat een vlag of proeftoken nodig is. Een Intent to Ship moet drie LGTM's van API-eigenaren ontvangen voordat de implementatie kan worden voortgezet.

Nieuwe functies uitrollen

Na goedkeuring wordt een functie samengevoegd met een toekomstige release en vervolgens doorgestuurd via de Chrome-releasekanalen . Het testen en implementeren van nieuwe functies wordt vaak met speciale zorg uitgevoerd. Sommige functies worden geleidelijk uitgerold naar een steeds groter deel van de gebruikers. Functies kunnen ook worden teruggedraaid en aangepast als er onverwachte neveneffecten optreden.

Het beheren van de levenscyclus van functies: veroudering en verwijdering

Er zijn twee andere soorten Blink-intentie:

  • Intentie om te depreciëren
  • Intentie om te verwijderen

Dat klinkt misschien wat treurig, maar ze zijn van cruciaal belang voor het succes van de ontwikkeling van Blink.

Een 'intentie tot veroudering' wordt geplaatst door engineers wanneer ze ontwikkelaars willen waarschuwen dat een functie op de planning staat om te worden verouderd. Bijvoorbeeld door ondersteuning en informatie over de veroudering te bieden in de Chrome DevTools-console.

Een 'Intentie tot verwijderen'-melding wordt geplaatst als engineers van plan zijn om code standaard te deactiveren.

LGTM's over intenties tot veroudering op blink.dev .

Het belang van afkeuring en verwijdering

Veroudering en verwijdering zijn beide cruciaal voor de gezondheid van het webplatform. Ze zorgen ervoor dat Chrome functies kan verwijderen die niet goed werken voor eindgebruikers of webontwikkelaars, en helpen de complexiteit van de codebase te verminderen. Zo werden er problemen met het ontwerp van AppCache ontdekt toen het werd gebruikt op productiesites in stabiele browsers, en werd de API uiteindelijk verwijderd. Veroudering en verwijdering dragen ook bij aan de veiligheid van Chrome door potentiële aanvalsvectoren te verminderen.

Zoals met alle Blink-intenties doet het Chrome-team zijn best om beslissingen zorgvuldig te nemen. Ze bekijken de gebruikscijfers van functies en andere gegevens voordat ze verdergaan. De lat voor het verwijderen van functies ligt eigenlijk ongelooflijk hoog, en een functie wordt alleen verwijderd als deze door een zeer klein deel van de gebruikers wordt gebruikt en er betere alternatieven beschikbaar zijn.

U kunt de voortgang van functies volgen via Chrome Status , waar u zich kunt abonneren op updates, bugs kunt melden en andere bronnen kunt vinden.

Chrome-functieoverzicht op chromestatus.com .

Om nieuwe functies te volgen, kun je de Chromium Blog volgen. Je kunt op de hoogte blijven van alle Blink Intents door lid te worden van de blink-dev discussiegroep . Dat kan je een hoop e-mails opleveren! Je kunt je ook abonneren op één intent. Je kunt een spreadsheet met Blink Intents bekijken op bit.ly/blinkintents . Als je Blink Intents echt leuk vindt, kun je zelfs verder bouwen op de geautomatiseerde Blink Intent Tracker-services .

Volgende stappen

Bekijk Wat zijn Chrome-releasekanalen?