Cuando los ingenieros quieren realizar un cambio en el motor de renderización Blink, publican en la lista de distribución de blink-dev para obtener la aprobación para continuar. Estas publicaciones de la lista 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.
Descubre cómo funcionan las intenciones de Blink, por qué son importantes y cómo las nuevas funciones se incorporan a Blink.
Chromium y Blink
Chromium es el proyecto de navegador de código abierto en el que se basan Chrome y otros navegadores y frameworks. Blink es el motor de renderización que usa Chromium.
Para que una nueva función llegue a Blink, debe pasar por el proceso de desarrollo abierto del proyecto Chromium. Una "función nueva" es cualquier cambio o adición al código o la arquitectura del navegador. Podría 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 el diseño y la implementación.
Siempre que sea posible, las funciones nuevas deben ser interoperables en toda la plataforma web y no implementarse solo en un navegador. Los desarrolladores web no quieren sorpresas: cuando los navegadores no funcionan como se espera o cuando terminan teniendo que escribir código diferente para distintos navegadores y plataformas. Las intenciones de Blink ayudan a estructurar y regular el proceso de cambio para que los cambios sean más predecibles y menos sorprendentes, 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 provoquen que los sitios web dejen de funcionar. A menudo, los propietarios de los sitios dejan de mantenerlos. Algunos sitios no se actualizaron en décadas. Los proveedores de navegadores deben tener esto en cuenta cuando realicen cambios que puedan causar interrupciones.
De la idea a la propuesta
Las propuestas de cambios y actualizaciones de la plataforma web surgen de la investigación, que incluye consultas con usuarios, empresas, ingenieros de navegadores, desarrolladores web y otras partes interesadas. Esta investigación permite que el equipo de Chrome determine qué falta en la plataforma o qué se debe cambiar. Inicialmente, una propuesta de cambio o de una nueva función en la plataforma web son solo palabras en una página. Los ingenieros comparten documentos para recibir comentarios y debatir con sus colegas.
Un ejemplo: FedCM
Federated Credential Management (FedCM) es una API que ofrece un enfoque centrado en la privacidad y fácil de usar para el registro y el acceso de usuarios, conocido como identidad federada. Por ejemplo, esto se aplica a Acceder con Google y otros accesos sociales.
Para crear una API del navegador, el primer paso es preparar una propuesta para el debate público. La propuesta de FedCM se publicó en GitHub como una explicación. Cualquier persona puede hacer preguntas o comentar sobre los diseños de las funciones creando un problema de GitHub en el repositorio del explicador. Los comentarios pueden incluir descripciones de desarrolladores sobre casos de uso adicionales, restricciones, ideas para mejorar o una promesa de asistencia.
Una vez que un organismo de estandarización, como el W3C, adopta una propuesta, las partes interesadas pueden participar en debates y ver presentaciones en grupos de estándares web, como los Grupos de trabajo del W3C.
Blink Intents: Hitos y progreso
Para cada hito, cuando los ingenieros trabajan en una nueva función o en un cambio en el motor de renderización de Blink, publican una entrada 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 “intenciones”. Cualquier persona puede suscribirse al grupo blink-dev para recibir notificaciones cuando haya avances en las nuevas funciones de Blink o suscribirse a una función individual para recibir actualizaciones.
Intención de crear un prototipo
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 las pruebas de los desarrolladores detrás de una marca de función, inicialmente en Chrome Canary y, luego, en otros canales de versiones. 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 establecer 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 lanzan para pruebas en Chrome Canary, aunque esto es bastante raro. Algunas funciones no tienen su propia marca, pero están disponibles si se habilita la marca experimental-web-platform-features. En general, este es el caso de las funciones "más pequeñas" que tardan, como máximo, entre tres y seis meses en implementarse.
Recopilación de comentarios sobre prototipos
Una vez que comienza la creación de prototipos de una nueva función, los ingenieros de Chromium invitan a la discusión y a la experimentación anticipada. Los comentarios en este punto son fundamentales para validar las propuestas y realizar iteraciones en ellas. Errores de Chromium es el lugar para comentar sobre la implementación en Chrome.
Intención de 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 quieren solicitar que se ejecute una prueba de origen.
Las pruebas de origen son una forma de probar una función nueva o experimental de la plataforma web. Te registras para 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.
Aprobación de los propietarios de la API de Blink
Para que avance el progreso hacia la implementación de una función, los propietarios de la API de Blink deben dar su aprobación respondiendo a una intención con una publicación de "Me parece bien", conocida como LGTM.
Los propietarios de la API de Blink son un grupo pequeño de colaboradores de Chromium con mucha experiencia en la plataforma web y sus APIs, y la comunidad de Blink acordó que se encuentran en buen estado, con un compromiso con la misión y los valores de Blink. Además de aprobar (o no) las funciones para que se implementen, los propietarios de la API supervisan el proceso de Blink Intent.
Una intención de experimentar debe recibir al menos un LGTM de los propietarios de la API.
El valor de las pruebas de origen
Los desarrolladores pueden registrarse en 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 ayudar a iterar y evolucionar la función.
Intención de lanzamiento: El hito final
La intención de lanzamiento indica que una función ya está completa y lista para implementarse para la disponibilidad general, para todos los usuarios de Chrome estable sin necesidad de una marca o un token de prueba. Una intención de lanzamiento 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, la función se combina en una próxima versión y, luego, avanza por los canales de versiones de Chrome. La prueba y la implementación de funciones nuevas suelen realizarse 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.
Administra la baja y la eliminación
Existen otros dos tipos de intents de Blink:
- Intención de dar de baja
- Intención de quitar
Puede que suene un poco triste, pero en realidad son fundamentales para el éxito del desarrollo de Blink.
Los ingenieros publican un Intent to Deprecate cuando quieren comenzar a advertir a los desarrolladores que se programó la baja de una función. Por ejemplo, brindando asistencia e información sobre la baja en la consola de Herramientas para desarrolladores de Chrome.
Se publica una intención de quitar cuando los ingenieros pretenden que el código se desactive de forma predeterminada.
La importancia de la baja y la eliminación
Tanto la baja como la eliminación son fundamentales para la salud 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 finalmente se quitó. 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 todas las intenciones de Blink, el equipo de Chrome hace todo lo posible para tomar decisiones con cuidado. Revisan las tasas de uso de las funciones y otros datos antes de continuar. El umbral para quitar funciones es muy alto, y solo se quitará una función si la usa una proporción muy pequeña de usuarios y si hay alternativas mejores disponibles.
Mantente al día con Blink Intents
Puedes hacer un seguimiento del progreso de las funciones en Chrome Status, donde puedes suscribirte a las actualizaciones, registrar errores y encontrar otros recursos.
Para hacer un seguimiento de las funciones nuevas, sigue el blog de Chromium y únete al grupo de debate blink-dev. El grupo puede generar una gran cantidad de correos electrónicos, por lo que tal vez prefieras suscribirte a una sola intención. Puedes ver una hoja de cálculo de las intenciones de Blink.
Si realmente te gustan las intenciones de Blink, incluso puedes aprovechar los servicios automatizados de seguimiento de intenciones de Blink.