Quando gli ingegneri vogliono apportare una modifica al motore di rendering Blink, pubblicano un post nell'elenco blink-dev per ottenere l'approvazione per procedere. Questi post delle mailing list sono chiamati Blink Intents.
I browser web basati su Chromium utilizzano il motore di rendering Blink per trasformare il codice e le risorse in pagine web che puoi visualizzare e con cui puoi interagire.
Scopri come funzionano gli intent di Blink, perché sono importanti e come le nuove funzionalità vengono integrate in Blink.
Chromium e Blink
Chromium è il progetto open source del browser su cui si basano Chrome e alcuni altri browser e framework. Blink è il motore di rendering utilizzato da Chromium.
Affinché una nuova funzionalità venga implementata in Blink, deve superare la procedura di sviluppo aperta del progetto Chromium. Una "nuova funzionalità" è qualsiasi modifica o aggiunta al codice o all'architettura del browser. Potrebbe trattarsi di una nuova API JavaScript, di un miglioramento significativo delle prestazioni nel codice Blink o di un'altra modifica al modo in cui il browser appare o funziona.
Un processo aperto e collaborativo
Chromium è un progetto enorme e complesso con migliaia di collaboratori. Quando vengono apportate modifiche a Chromium, ogni traguardo è un'opportunità per invitare l'ecosistema web più ampio a commentare la progettazione e l'implementazione.
Ove possibile, le nuove funzionalità devono essere interoperabili sulla piattaforma web e non implementate solo su un browser. Gli sviluppatori web non vogliono sorprese: quando i browser non funzionano come previsto o quando si ritrovano a dover scrivere codice diverso per browser e piattaforme diversi. Gli intent di Blink aiutano a strutturare e regolare il processo di modifica, per rendere le modifiche più prevedibili e meno sorprendenti, il che è positivo per gli sviluppatori web.
Per gli utenti, i fornitori di browser devono assicurarsi che le modifiche non causino l'interruzione del funzionamento dei siti web. I proprietari dei siti spesso smettono di eseguire la manutenzione dei siti web. Alcuni siti non vengono aggiornati da decenni. I fornitori di browser devono tenerne conto quando apportano modifiche che potrebbero causare interruzioni.
Dall'idea alla proposta
Le proposte di modifiche e aggiornamenti alla piattaforma web derivano da ricerche: consultazioni con utenti, aziende, ingegneri dei browser, sviluppatori web e altri stakeholder. Questa ricerca consente al team di Chrome di capire cosa manca alla piattaforma o cosa deve essere modificato. Inizialmente, una proposta di modifica o di una nuova funzionalità sulla piattaforma web è solo un testo su una pagina. Gli ingegneri condividono i documenti per ricevere feedback e commenti dai colleghi.
Esempio: FedCM
Federated Credential Management (FedCM) è un'API che offre un approccio incentrato sulla privacy e facile da usare per la registrazione e l'accesso degli utenti, noto come identità federata. Ad esempio, questo vale per l'accesso con Google e altri accessi tramite social.
Per creare un'API del browser, il primo passo è preparare una proposta per la discussione pubblica. La proposta di FedCM è stata pubblicata su GitHub come spiegazione. Chiunque è invitato a porre domande o commentare i progetti delle funzionalità creando un problema su GitHub nel repository di spiegazioni. Il feedback può includere descrizioni degli sviluppatori di casi d'uso aggiuntivi, vincoli, idee per il miglioramento o una promessa di supporto.
Una volta che una proposta viene adottata da un ente di standardizzazione, come il W3C, le parti interessate possono partecipare a discussioni e guardare presentazioni in gruppi di standard web, come i gruppi di lavoro W3C.
Blink Intents: traguardi e progressi
Per ogni traguardo, quando gli ingegneri lavorano a una nuova funzionalità o a una modifica del motore di rendering Blink, pubblicano un post nel gruppo di discussione blink-dev, spiegando che intendono passare alla fase successiva verso l'implementazione di una funzionalità. Questi post sono chiamati "intenti". Chiunque può iscriversi al gruppo blink-dev per ricevere una notifica quando vengono apportati progressi con le nuove funzionalità di Blink o iscriversi a una singola funzionalità per ricevere aggiornamenti.
Intento di prototipazione
A questo punto, gli ingegneri di Chromium possono iniziare a implementare una funzionalità. Ciò significa che la funzionalità prototipo della funzionalità potrebbe essere resa disponibile per i test degli sviluppatori dietro un flag della funzionalità, inizialmente in Chrome Canary e poi in altri canali di rilascio. Qualsiasi utente può impostare un flag dalla pagina chrome://flags per attivare e testare una funzionalità nel proprio browser.
Tuttavia, non tutti i flag possono essere impostati dalla pagina chrome://flags. Per un controllo più granulare, puoi eseguire Chrome da un terminale utilizzando i flag della riga di comando. Tieni presente che alcune nuove funzionalità non sono disponibili fino a quando non vengono spedite per i test in Chrome Canary, anche se è piuttosto raro. Alcune funzionalità non hanno un proprio flag, ma vengono rese disponibili se il flag experimental-web-platform-features è attivato. In genere, questo è il caso delle funzionalità "più piccole" che richiedono al massimo un periodo di implementazione compreso tra tre e sei mesi.
Raccogliere feedback sui prototipi
Una volta iniziata la prototipazione di una nuova funzionalità, gli ingegneri di Chromium invitano alla discussione e alla sperimentazione anticipata. Il feedback in questa fase è fondamentale per convalidare e perfezionare le proposte. Bug di Chromium è il luogo in cui commentare l'implementazione in Chrome.
Intent to Experiment: test nel mondo reale
Un post Intent to Experiment su blink-dev è un passaggio successivo facoltativo, se gli ingegneri di Chrome vogliono richiedere l'esecuzione di una prova dell'origine.
Origin trials è un modo per testare una funzionalità nuova o sperimentale della piattaforma web. Ti registri alla prova dell'origine di una funzionalità, poi ricevi un token per la prova. La funzionalità verrà attivata su qualsiasi pagina che fornisce il token.
Approvazione dei proprietari dell'API Blink
Perché l'implementazione di una funzionalità possa procedere, i proprietari dell'API Blink devono dare la loro approvazione rispondendo a un intent con un post "Mi sembra tutto a posto", noto come LGTM.
I proprietari delle API Blink sono un piccolo gruppo di collaboratori di Chromium, con grande esperienza con la piattaforma web e le relative API. La community di Blink ha stabilito che sono persone affidabili, impegnate nella missione e nei valori di Blink. Oltre a dare l'approvazione (o meno) per l'implementazione delle funzionalità, i proprietari delle API supervisionano il processo di Blink Intent.
Un Intent to Experiment deve ricevere almeno un LGTM dai proprietari dell'API.
Il valore delle prove dell'origine
Gli sviluppatori possono registrarsi alla prova dell'origine di una funzionalità e poi testarla in produzione in ambienti reali, con utenti reali, senza che questi debbano intervenire per attivare la funzionalità. Gli sviluppatori possono condividere i risultati dei test, che forniscono insight e dati preziosi per contribuire a iterare ed evolvere la funzionalità.
Intenzione di spedizione: il traguardo finale
L'Intent to Ship indica che una funzionalità è ora completa e pronta per essere implementata per la disponibilità generale, per tutti gli utenti della versione stabile di Chrome senza richiedere un flag o un token di prova. Una dichiarazione di intenzione di spedizione deve ricevere tre LGTM dai proprietari delle API prima che l'implementazione possa procedere.
Implementazione di nuove funzionalità
Una volta approvata, una funzionalità viene unita a una release imminente e poi procede attraverso i canali di rilascio di Chrome. Il test e l'implementazione di nuove funzionalità vengono spesso gestiti con particolare attenzione. Alcune funzionalità vengono implementate gradualmente per una percentuale crescente di utenti. Le funzionalità possono anche essere sottoposte a rollback e rielaborate, se si verificano effetti collaterali imprevisti.
Gestire il ritiro e la rimozione
Esistono altri due tipi di intent di Blink:
- Intenzione di ritiro
- Intenzione di rimozione
Questi potrebbero sembrare un po' tristi, ma in realtà sono fondamentali per il successo dello sviluppo di Blink.
Un Intent to Deprecate viene pubblicato dagli ingegneri quando vogliono iniziare ad avvisare gli sviluppatori che una funzionalità verrà ritirata. Ad esempio, fornendo assistenza e informazioni sul ritiro nella console Chrome DevTools.
Un Intent to Remove viene pubblicato quando gli ingegneri intendono disattivare il codice per impostazione predefinita.
L'importanza del ritiro e della rimozione
Il ritiro e la rimozione sono entrambi fondamentali per l'integrità della piattaforma web. Assicurano che Chrome possa rimuovere le funzionalità che non funzionano bene per gli utenti finali o gli sviluppatori web e contribuiscono a ridurre la complessità del codice sorgente. Ad esempio, i problemi con la progettazione di AppCache sono stati scoperti una volta utilizzato sui siti di produzione in browser stabili e l'API è stata infine rimossa. Le deprecazioni e le rimozioni contribuiscono anche a mantenere Chrome sicuro, riducendo i potenziali vettori di attacco.
Come per tutti gli intent di Blink, il team di Chrome fa del suo meglio per prendere decisioni con attenzione. Esaminano i tassi di utilizzo delle funzionalità e altri dati prima di procedere. Il livello di requisiti per la rimozione delle funzionalità è molto elevato e una funzionalità viene rimossa solo se è utilizzata da una percentuale molto, molto ridotta di utenti e se sono disponibili alternative migliori.
Tieniti al corrente sugli intent Blink
Puoi monitorare l'avanzamento delle funzionalità su Chrome Status, dove puoi iscriverti agli aggiornamenti, segnalare bug e trovare altre risorse.
Per tenere traccia delle nuove funzionalità, segui il blog di Chromium e unisciti al gruppo di discussione blink-dev. Il gruppo può generare un gran numero di email, quindi potresti preferire iscriverti a un singolo intent. Puoi visualizzare un foglio di lavoro degli intent di Blink.
Se ti piace molto Blink Intents, puoi persino basarti sui servizi di monitoraggio automatico di Blink Intents.