Chrome 147 (beta)

Publicado: 11 de marzo de 2026

A menos que se indique lo contrario, los siguientes cambios se aplican a la versión más reciente del canal beta de Chrome para Android, ChromeOS, Linux, macOS y Windows. Para obtener más información sobre estas funciones, sigue los vínculos proporcionados o visita ChromeStatus.com. Puedes descargar la versión beta más reciente desde Google.com para computadoras o desde Google Play Store en Android.

Rango con nombre de la línea de tiempo scroll

Esta función expande el conjunto de rangos con nombre de ViewTimelines y agrega un rango scroll.

La API de Scroll-Driven Animations introdujo ViewTimelines junto con rangos con nombre que hacen referencia a porciones de un ViewTimeline que definen el rango de una animación.

Sin embargo, todos los rangos con nombre proporcionados se restringieron a la parte de ViewTimeline en la que se ve su sujeto. Es útil para que los autores se refieran a la extensión completa del contenedor de desplazamiento subyacente a la línea de tiempo. Esta función agrega un rango con nombre de scroll al conjunto existente (entry, exit, cover, contain).

CSS contrast-color()

Puedes usar esta función para cumplir con los requisitos de contraste de accesibilidad.

La función contrast-color() se puede usar en cualquier parte de CSS donde se espera un valor de color. Toma un argumento de valor de color y devuelve black o white según cuál proporcione el mayor contraste con el argumento de color.

CSS border-shape

CSS border-shape te permite crear bordes no rectangulares con cualquier forma arbitraria (por ejemplo, polygon, circle, shape()).

Si bien border-shape acepta las mismas formas que clip-path, es fundamentalmente diferente: border-shape define la forma del borde, lo decora y recorta solo el interior.

border-shape tiene dos variantes: una que traza una forma y otra que rellena entre dos formas.

Transiciones de vista con alcance de elemento

Expone Element.startViewTransition() en elementos HTML arbitrarios. El elemento establece un alcance para la transición, lo que significa que los seudoelementos de transición se ven afectados por los recortes y las transformaciones de los elementos superiores, y que varias transiciones en elementos separados pueden ejecutarse de forma simultánea.

Actualización de CSS: Desvinculación de las propiedades width y style

Chrome se alinea con las especificaciones de CSS actualizadas para el comportamiento de las propiedades border-width, outline-width y column-rule-width. Anteriormente, si el border-style, outline-style o column-rule-style correspondiente se establecía en none o hidden, el ancho calculado de estas propiedades se forzaba a 0px, independientemente del valor especificado.

Con este cambio, los valores calculados de border-width, outline-width y column-rule-width siempre reflejan los valores especificados por el autor, independientemente de la propiedad *-style. Además, los valores resueltos (como los que devuelve getComputedStyle()) para outline-width y column-rule-width también reflejan los valores especificados.

Este cambio alinea Chrome con Firefox y WebKit, que ya implementaron este comportamiento.

Interfaz de CSSPseudoElement

La interfaz CSSPseudoElement representa un seudoelemento en JavaScript.

CSSPseudoElement se devuelve desde Element.pseudo(type), donde type es ::after, ::before o ::marker. CSSPseudoElement es un objeto proxy que representa un seudoelemento, por lo que, a diferencia de un seudoelemento, CSSPseudoElement siempre existe.

CSSPseudoElement tiene los siguientes atributos y métodos:

  • El atributo type es una cadena que representa el tipo de seudoelemento.
  • El atributo element es el elemento de origen final del seudoelemento.
  • El atributo parent es el elemento de origen del seudoelemento (ya sea el elemento o CSSPseudoElement para los seudoelementos anidados).
  • El método pseudo(type) para recuperar seudoelementos anidados.

Pseudo objetivo en eventos

Los eventos específicos se extienden para tener .pseudoTarget que es CSSPseudoElement (si la interacción fue con un seudoelemento) o null.

Esto proporciona información más específica sobre el origen del evento, por ejemplo, que no solo se hizo clic en un elemento de origen final (Event.target), sino que, más específicamente, fue ::after. Ten en cuenta que Event.target no cambia, por lo que el evento solo tiene información adicional sobre la interacción con el seudoelemento.

Los eventos son UIEvent, AnimationEvent y TransitionEvent.

No se admiten mouseover, mouseout, mouseenter, mouseleave ni sus equivalentes de pointer*.

Detección de planos de WebXR

La API de WebXR Plane Detection permite que los sitios recuperen el conjunto de planos detectados en el entorno del usuario. Esto requiere menos trabajo para los desarrolladores y es más potente que usar la función WebXR de detección de profundidad, ya que los planos, por ejemplo, las paredes que ocultan los objetos, se pueden representar por completo si el sistema conoce los límites de la pared. Un mapa de profundidad mostraría la pared, pero los objetos que se encuentran delante de ella la interrumpirían y podrían ocultar su alcance completo. Además, la información de etiquetado semántico está disponible cuando el dispositivo conoce esas etiquetas y se ajustan a categorías predefinidas, lo que proporciona un mejor conocimiento del mundo.

Capas de WebXR

Las capas de WebXR ofrecen una forma más eficiente de dibujar contenido envolvente.

Además de la compatibilidad con texturas nativas de color y profundidad, y con arrays de texturas, también proporciona compatibilidad con diferentes tipos de capas que administra el compositor del sistema en lugar de JavaScript.

Análisis de XML en Rust para situaciones que no son de XSLT

Lanzaremos el analizador de XML de Rust para situaciones en las que tengamos la certeza de que no se requiere procesamiento de XSLT.

El analizador de XML de Rust mejora la seguridad, ya que elimina los errores de corrupción de memoria en el análisis de XML. Su objetivo es reemplazar nuestro uso de libxml2 (escrito en C) por una alternativa segura.

Chrome dará de baja XSLT. Mientras este proceso continúa, ya puedes usar el análisis XML seguro de Rust en situaciones en las que no se requiere XSLT:

Se agregó compatibilidad con los tipos de módulos de diseño y JSON como destinos de <link rel="modulepreload">. <link rel="modulepreload"> ya es compatible con Chromium (consulta https://chromestatus.com/feature/5762805915451392), pero solo admite la precarga de secuencias de comandos de módulos similares a secuencias de comandos. Esta función aborda una brecha en la funcionalidad, ya que las secuencias de comandos de módulos JSON y CSS se admiten en Chromium en otros lugares, pero no como destinos de <link rel="modulepreload">. Los módulos Style se pueden cargar previamente con <link rel="modulepreload" as="style" href="...">, y los módulos JSON se pueden cargar previamente con <link rel="modulepreload" as="json" href="...">.

Math.sumPrecise

Una propuesta de TC39 para agregar un método para sumar varios valores a JavaScript.

Agrega un método Math.sumPrecise que toma un iterable y devuelve la suma de los valores en el iterable con un algoritmo más preciso que la suma simple.

Se agregó compatibilidad con el atributo path en el elemento <textpath> de SVG

Este cambio agrega compatibilidad con el atributo path en el elemento <textPath> de SVG, lo que permite a los autores definir la geometría de la ruta de texto intercalada con datos de ruta SVG y reduce la necesidad de elementos <path> definidos por separado.

<textPath> resuelve la geometría de su ruta de texto con las siguientes reglas:

  1. Si están presentes path y href, la geometría se resuelve a partir del atributo path.
  2. Si solo está presente el atributo path y se analiza correctamente, se usa la definición de ruta de acceso intercalada.
  3. Si el atributo path no está presente o no se puede analizar, y se proporciona un atributo href, se usa el elemento <path> al que se hace referencia como alternativa.
  4. El comportamiento existente solo para href se conserva sin cambios.

Esta implementación sigue la definición del atributo path en <textPath> de la especificación de SVG 2, y el comportamiento de resolución es coherente con otros motores de navegador, lo que mejora la interoperabilidad y el cumplimiento de los estándares.

Obtén capacidades de confirmación de pago seguro

Agrega un nuevo método estático a Payment Request que permite a los desarrolladores web obtener las capacidades de la implementación del navegador de la Confirmación de pago seguro.

Esto ayuda a los desarrolladores web a saber qué capacidades están disponibles para la Confirmación de pago segura, de modo que puedan decidir si quieren usarla con esas capacidades.

Actualiza los límites de la API de Device Memory

Se actualizó a un nuevo conjunto de valores posibles para la API de Device Memory:

  • Android: 1, 2, 4, 8
  • Otros: 2, 4, 8, 16 y 32

Reemplazamos los valores anteriores de 0.25, 0.5, 1, 2, 4 y 8 que ya no son válidos.

Esto reduce los riesgos de huellas digitales en el extremo inferior porque las capacidades de los dispositivos mejoraron desde que se establecieron estos valores.

Restricciones de acceso a la red local en el Service Worker WindowClient.navigate()

Recientemente, se agregaron restricciones de acceso a la red local (LNA) para impedir que los sitios web realicen solicitudes unilaterales a redes y dispositivos locales. Se agregó para las solicitudes de recuperación iniciadas por Service Workers, pero no se aplicó a las navegaciones realizadas por Service Workers a través de WindowClient.navigate.

Con este lanzamiento, se aborda esta brecha agregando restricciones de LNA a las llamadas de WindowClient.navigate(), usando WindowClient como el iniciador de la navegación para determinar si la navegación es una solicitud de LNA.

Esto solo se aplica si el WindowClient al que se navega es un subframe; Chrome no aplica ninguna restricción de LNA en las navegaciones de frame principal.

Restricciones de acceso a la red local para WebSockets

Las restricciones de acceso a la red local (LNA) se expandirán para incluir WebSockets. Las conexiones de WebSockets a direcciones locales ahora activan mensajes de permisos.

Todas las políticas empresariales de LNA siguen aplicándose a las restricciones de WebSockets de LNA, incluidas LocalNetworkAccessAllowedForUrls, LocalNetworkAccessBlockedForUrls y LocalNetworkAccessRestrictionsTemporaryOptOut.

Puedes encontrar más información sobre LNA en Local Network Access.

Restricciones de acceso a la red local para WebTransport

Restringe la capacidad de realizar solicitudes a la red local del usuario con WebTransport, que se limita detrás de una solicitud de permiso.

Una solicitud de red local es cualquier solicitud de un sitio web público a una dirección IP local o bucle invertido, o de un sitio web local (por ejemplo, una intranet) a un bucle invertido. Limitar la capacidad de los sitios web para realizar estas solicitudes detrás de un permiso reduce la capacidad de los sitios para usar estas solicitudes y crear huellas digitales de la red local del usuario.

Este permiso está restringido a contextos seguros.

Solo para IWA: API de Web Printing

Esta API permite una integración más profunda con la funcionalidad relacionada con la impresora en las apps web aisladas (IWA).

La API de Web Printing proporciona un conjunto de métodos de JavaScript que permiten a los desarrolladores consultar impresoras locales, enviar trabajos de impresión a las impresoras más adecuadas y administrar las opciones y el estado de los trabajos de impresión. Para representar estos conceptos, se basa en los nombres y la semántica de los atributos de las especificaciones del Protocolo de impresión por Internet (IPP).

Nuevas pruebas de origen

En Chrome 147, puedes habilitar las siguientes pruebas de origen nuevas.

Tiempo de contenedores

La API de Container Timing te permite supervisar cuándo se muestran en la pantalla las secciones anotadas de DOM y cuándo finaliza su pintura inicial. Un desarrollador puede marcar subsecciones del DOM con el atributo containertiming (similar a elementtiming para la API de Element Timing) y recibir entradas de rendimiento cuando esa sección se haya renderizado por primera vez. Esta API permite a los desarrolladores medir el tiempo de varios componentes en sus páginas.

Evento de Autocompletar

Autocompletar es una función clave de la Web que reduce la fricción para millones de usuarios todos los días. Sin embargo, lograr que el autocompletar funcione de manera confiable con formularios dinámicos en varias implementaciones puede ser complejo.

Esta función agrega un evento autofill que se activa cuando el navegador está a punto de autocompletar un campo de formulario. Esto permite que los desarrolladores modifiquen sus formularios para que se ajusten a los datos autocompletados y le indiquen al navegador cuando lo hayan hecho.

Elemento de instalación HTML de la app web

Permite que un sitio web solicite de forma declarativa a los usuarios que instalen una app web. De manera opcional, el elemento acepta dos atributos que permiten la instalación de contenido desde un origen diferente.

Listas de entidades permitidas de conexión

Las listas de entidades permitidas de conexión son una función diseñada para proporcionar un control explícito sobre los extremos externos, ya que restringen las conexiones iniciadas con la API de Fetch o con otras APIs de la plataforma web desde un documento o un trabajador.

La implementación propuesta implica la distribución de una lista de extremos autorizados desde el servidor a través de un encabezado de respuesta HTTP. Antes de que el usuario-agente establezca cualquier conexión en nombre de una página, el agente evalúa el destino en función de esta lista de entidades permitidas. Se permiten las conexiones a extremos verificados, mientras que se bloquean las que no coinciden con las entradas de la lista.

Bajas y eliminaciones

En esta versión de Chrome, se introducen las siguientes bajas y eliminaciones. Visita ChromeStatus.com para ver listas de las bajas planificadas, las bajas actuales y las eliminaciones anteriores.

En esta versión de Chrome, se dejaron de usar las siguientes funciones:

Se quitó el XSLT intercalado para la producción de SVG

Comenzaremos a descontinuar el XSLT intercalado para la producción de SVG. Se implementa de forma sincronizada con las pruebas experimentales del analizador de XML basado en Rust y no se implementa de inmediato en el 100% de la versión de lanzamiento marcada.

Un archivo XML especialmente diseñado puede contener una hoja de estilo XSL que transforma datos XML genéricos en un archivo SVG.

Ejemplo: https://gist.github.com/drott/1fc70b3c7f0ac314d1fe2e5beecc5490?short_path=1c60adf

Este es un caso especial de procesamiento de XSLT que, según las mediciones de uso, Chrome considera prácticamente inexistente en la Web. Chrome planea dar de baja y quitar este uso particular de XSLT antes de eliminarlo por completo.