¿Qué son los intents de Blink?

Cuando los ingenieros quieren realizar un cambio en el motor de renderización de Blink, publican en la lista de distribución blink-dev para obtener la aprobación para continuar. Estas publicaciones de listas de distribución se denominan Blink Intents.

Los navegadores web basados en Chromium usan el motor de renderización Blink para transformar el código y los recursos en páginas web con las que puedes interactuar y ver.

La lista de distribución blink-dev.

Descubre cómo funcionan los intents de Blink, por qué son importantes y cómo las funciones nuevas se incorporan a Blink.

Chromium es el proyecto de navegador de código abierto en el que se compilan Chrome y algunos otros navegadores y frameworks. Blink es el motor de renderización que usa Chromium.

Para que una función nueva llegue a Blink, debe pasar por el proceso de desarrollo abierto del proyecto de Chromium. Una "función nueva" es cualquier cambio o adición al código o la arquitectura del navegador. Puede ser una nueva API de JavaScript, una mejora significativa del rendimiento en el código de Blink o algún otro cambio en la forma en que se ve o funciona el navegador.

Un proceso abierto y colaborativo

Chromium es un proyecto enorme y complejo con miles de colaboradores. Cuando hay cambios en Chromium, cada hito es una oportunidad para invitar al ecosistema web más amplio a comentar sobre el diseño y la implementación.

Siempre que sea posible, las funciones nuevas deben ser interoperables en la plataforma web y no deben implementarse solo en un navegador. Los desarrolladores web no quieren sorpresas: cuando los navegadores no funcionan como se espera o cuando terminas teniendo que escribir código diferente para diferentes navegadores y plataformas. Los intents de Blink ayudan a estructurar y regular el proceso de cambio para que los cambios sean más predecibles y menos sorpresivos, lo que es bueno para los desarrolladores web.

En el caso de los usuarios, los proveedores de navegadores deben tener cuidado de que los cambios no hagan que los sitios web dejen de funcionar. Los propietarios de sitios suelen dejar de mantener los sitios web. Algunos sitios no se actualizan desde hace décadas. Los proveedores de navegadores deben tener esto en cuenta cuando hacen cambios que podrían causar fallas.

De la idea a la propuesta

Las propuestas de cambios y actualizaciones de la plataforma web provienen de la investigación: consultar con usuarios, empresas, ingenieros de navegadores, desarrolladores web y otras partes interesadas. Esta investigación permite al equipo de Chrome determinar qué le falta a la plataforma o qué debe cambiar. Inicialmente, una propuesta de cambio o una nueva función en la plataforma web son solo palabras en una página. Los ingenieros comparten documentos para recibir comentarios y debates de sus colegas.

Ejemplo: FedCM

La administración de credenciales federadas (FedCM) es una API que proporciona mecanismos nuevos y mejores para las plataformas que administran el registro y el acceso de los usuarios, conocidos como identidad federada; por ejemplo, cuando seleccionas "Acceder con Google" o "Acceder con GitHub".

Una vez que una propuesta como FedCM esté lista para el debate público, se publicará en GitHub como una explicación. En este punto, cualquier persona puede hacer una pregunta o comentar sobre el diseño de una función. Para ello, debe crear un problema en el repositorio de explicaciones de GitHub. Los comentarios pueden describir casos de uso o restricciones adicionales, proporcionar ideas para mejoras o simplemente mostrar apoyo.

La explicación de FedCM en GitHub.

Una vez que un organismo de estandarización, como el W3C, adopta una propuesta, las partes interesadas pueden unirse a debates y mirar presentaciones en grupos de estándares web, como los grupos de trabajo del W3C.

Para cada evento importante en el que los ingenieros trabajan en una nueva función o un cambio en el motor de renderización de Blink, publican una publicación en el grupo de debate blink-dev en la que explican que tienen la intención de pasar a la siguiente fase para implementar una función. Estas publicaciones se denominan "intents". Cualquier persona puede suscribirse al grupo blink-dev para recibir notificaciones cuando haya progreso con funciones nuevas en Blink, o bien suscribirse a una función individual para recibir actualizaciones.

Intento de crear un prototipo: el primer punto de control

En este punto, los ingenieros de Chromium pueden comenzar a implementar una función. Esto significa que la funcionalidad del prototipo de la función puede estar disponible para que los desarrolladores la prueben detrás de una marca de función, inicialmente en Chrome Canary y, luego, en otros canales de lanzamiento. Cualquier usuario puede establecer una marca desde la página chrome://flags para activar y probar una función en su navegador.

Sin embargo, no todas las marcas se pueden configurar desde la página chrome://flags. Para obtener un control más detallado, puedes ejecutar Chrome desde una terminal con marcas de línea de comandos. Ten en cuenta que algunas funciones nuevas no están disponibles hasta que se envían para pruebas en Chrome Canary, aunque esto es bastante raro. Algunas funciones no tienen su propia marca, pero están disponibles si está habilitada la marca experimental-web-platform-features. Por lo general, este es el caso de las funciones "más pequeñas" que no tardan más de tres a seis meses en implementarse.

Recopilar comentarios sobre los prototipos

Una vez que comienza el prototipado de una nueva función, los ingenieros de Chromium invitan a la discusión y a la experimentación temprana. Los comentarios en este punto son fundamentales para validar y iterar las propuestas. Errores de Chromium es el lugar para comentar sobre la implementación en Chrome.

Crea un problema en el seguimiento de problemas de Chromium.

Intenta experimentar: Pruebas en el mundo real

Una publicación de Intent to Experiment en blink-dev es un siguiente paso opcional si los ingenieros de Chrome desean solicitar la ejecución de una prueba de origen.

Intención de realizar experimentos para FedCM.

Las pruebas de origen son una forma de probar una función nueva o experimental de la plataforma web. Te registras en la prueba de origen de una función y, luego, obtienes un token para la prueba. La función se activará en cualquier página que proporcione el token.

Una lista de las pruebas de origen de Chrome disponibles.

Para que se pueda avanzar en la implementación de una función, los propietarios de la API de Blink deben dar su aprobación respondiendo a un intent con una publicación que diga "me parece bien", conocida como LGTM.

Los propietarios de la API de Blink son un pequeño grupo de colaboradores de Chromium con mucha experiencia en la plataforma web y sus APIs, y la comunidad de Blink acordó que están en regla, con un compromiso con la misión y los valores de Blink. Además de aprobar (o no) que las funciones se implementen, los propietarios de la API supervisan el proceso de intent de Blink.

Un Intent to Experiment debe obtener al menos una LGTM de los propietarios de la API.

LGTM en la publicación de FedCM sobre la intención de realizar experimentos.

El valor de las pruebas de origen

Los desarrolladores pueden registrarse para la prueba de origen de una función y, luego, probarla en producción en entornos reales, con usuarios reales, sin que los usuarios deban realizar ninguna acción para que se active la función. Los desarrolladores pueden compartir los resultados de sus pruebas, lo que proporciona estadísticas y datos valiosos para iterar y evolucionar la función.

Intent to Ship: El hito final

El Intent to Ship indica que una función ya está completa y lista para implementarse en la versión estable de Chrome para todos los usuarios sin necesidad de una marca ni un token de prueba. Un Intent to Ship debe obtener tres LGTM de los propietarios de la API antes de que se pueda continuar con la implementación.

Lanzamiento de funciones nuevas

Una vez que se aprueba, una función se combina en una versión futura y, luego, avanza a través de los canales de versiones de Chrome. A menudo, las pruebas y la implementación de funciones nuevas se manejan con especial cuidado. Algunas funciones se lanzan de forma gradual para una proporción cada vez mayor de usuarios. Las funciones también se pueden revertir y volver a trabajar, si hay efectos secundarios inesperados.

Administración del ciclo de vida de las funciones: Baja y eliminación

Existen otros dos tipos de intents de Blink:

  • Intención de dar de baja
  • Intent to Remove

Esto puede sonar un poco triste, pero en realidad es fundamental para el éxito del desarrollo de Blink.

Los ingenieros publican un intent de baja cuando quieren comenzar a advertir a los desarrolladores que se programó la baja de una función. Por ejemplo, a través de la asistencia y la información sobre la baja en la consola de Chrome DevTools.

Se publica un Intento de eliminación cuando los ingenieros desean que el código se desactive de forma predeterminada.

LGTM en Intents to Deprecate on blink.dev.

La importancia de la baja y la eliminación

La baja y la eliminación son fundamentales para el estado de la plataforma web. Se aseguran de que Chrome pueda quitar funciones que no funcionan bien para los usuarios finales o los desarrolladores web, y ayudan a reducir la complejidad de la base de código. Por ejemplo, se descubrieron problemas con el diseño de AppCache una vez que se usó en sitios de producción en navegadores estables, y la API se quitó con el tiempo. Las bajas y las eliminaciones también ayudan a mantener la seguridad de Chrome, ya que reducen los posibles vectores de ataque.

Al igual que con todos los intents de Blink, el equipo de Chrome hace todo lo posible para abordar las decisiones con cuidado. Revisan las tasas de uso de las funciones y otros datos antes de continuar. El nivel para quitar funciones es muy alto, y solo se quitará una función si una proporción muy pequeña de usuarios la usa y si hay mejores alternativas disponibles.

Puedes hacer un seguimiento del progreso de las funciones en Estado de Chrome, donde puedes suscribirte a actualizaciones, informar errores y encontrar otros recursos.

Planificación de lanzamiento de funciones de Chrome en chromestatus.com.

Para hacer un seguimiento de las funciones nuevas, puedes seguir el blog de Chromium. Puedes mantenerte al tanto de todos los Intents de Blink uniéndote al grupo de discusión blink-dev. Esto puede generar muchos correos electrónicos. Como alternativa, puedes suscribirte a un solo intent. Puedes ver una hoja de cálculo de los intents de Blink en bit.ly/blinkintents. Si realmente te gustan los intents de Blink, incluso puedes compilar en los servicios automatizados de Blink Intent Tracker.

Próximos pasos

Consulta ¿Qué son los canales de versiones de Chrome?.