Versión beta de Chrome 140

Publicado el 6 de agosto de 2025

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. Obtén más información sobre las funciones que se indican aquí a través de los vínculos proporcionados o de la lista en ChromeStatus.com. Chrome 140 está en versión beta desde el 6 de agosto de 2025. Puedes descargar la versión más reciente en el sitio web oficial de Chrome para computadoras o en Google Play Store para Android.

CSS y la IU

Aritmética con escritura de CSS

La aritmética con tipos te permite escribir expresiones en CSS, como calc(10em / 1px) o calc(20% / 0.5em * 1px). Esto es útil, por ejemplo, en la tipografía, ya que te permite convertir un valor escrito en uno sin tipo y reutilizarlo para propiedades que aceptan números. Otro caso de uso es multiplicar el valor sin unidades por otro tipo. Por ejemplo, puedes convertir de píxeles a grados.

La propiedad scroll-target-group

La propiedad scroll-target-group especifica si el elemento es un contenedor de grupo de marcadores de desplazamiento. Acepta uno de los siguientes valores:

  • "none": El elemento no establece un contenedor de grupo de marcadores de desplazamiento.
  • "auto": El elemento establece un contenedor de grupo de marcadores de desplazamiento que forma un grupo de marcadores de desplazamiento que contiene todos los elementos de marcadores de desplazamiento para los que este es el contenedor de grupo de marcadores de desplazamiento principal más cercano.

Establecer un contenedor de grupo de marcadores de desplazamiento permite que cualquier elemento HTML de anclaje con un identificador de fragmento que se encuentre dentro de dicho contenedor sea el equivalente en HTML de los seudoelementos ::scroll-marker. El elemento de anclaje cuyo destino de desplazamiento está actualmente a la vista se puede diseñar con la seudoclase :target-current.

Habilita counter() y counters() en el texto alternativo de la propiedad content

Esta función agrega la capacidad de usar counter() y counters() en el texto alternativo de la propiedad content. Esto proporciona información más significativa para mejorar la accesibilidad.

Las seudoclases de transición de vista heredan más propiedades de animación

El seudoárbol de transición de vista ahora hereda varias propiedades de animación:

  • animation-delay
  • animation-timing-function
  • animation-iteration-count
  • animation-direction
  • animation-play-state

Habilita las transiciones de vista anidadas

Esta función permite que las transiciones de vista generen un árbol de seudoelementos anidado en lugar de uno plano. Esto permite que la transición de vista parezca más acorde con sus elementos originales y su intención visual. Permite el recorte, las transformaciones 3D anidadas y la aplicación adecuada de efectos como opacidad, enmascaramiento y filtros.

Propaga el viewport overscroll-behavior desde la raíz

Este cambio propaga overscroll-behavior desde la raíz en lugar del cuerpo. El grupo de trabajo de CSS resolvió no propagar propiedades desde <body> hasta la ventana gráfica. En cambio, las propiedades del viewport se propagan desde el elemento raíz (<html>). Por lo tanto, overscroll-behavior debe propagarse desde el elemento raíz. Sin embargo, Chrome tiene un problema desde hace mucho tiempo: propaga overscroll-behavior desde <body> en lugar de hacerlo desde la raíz. Este comportamiento no es interoperable con otros navegadores. Este cambio hace que Chrome cumpla con la especificación y sea interoperable con otras implementaciones.

Opción de contenedor ScrollIntoView

La opción de contenedor ScrollIntoViewOptions permite a los desarrolladores realizar una operación de scrollIntoView que solo desplaza el contenedor de desplazamiento principal más cercano. Por ejemplo, el siguiente fragmento solo desplaza el contenedor de desplazamiento de target para que target se muestre, pero no desplazará todos los contenedores de desplazamiento a la ventana gráfica:

target.scrollIntoView({container: 'nearest'});

Agrega la propiedad caret-animation de CSS

Chromium admite la animación de la propiedad caret-color. Sin embargo, cuando se anima, el comportamiento parpadeante predeterminado del cursor interfiere con la animación.

La propiedad caret-animation de CSS tiene dos valores posibles: auto y manual. auto significa el valor predeterminado del navegador (parpadeo) y manual significa que el desarrollador controla la animación del cursor. Además, los usuarios que se sientan molestos o tengan reacciones adversas a las imágenes parpadeantes o intermitentes pueden inhabilitar el parpadeo con una hoja de estilo del usuario.

La API de highlightsFromPoint

La API de highlightsFromPoint permite a los desarrolladores interactuar con los momentos destacados personalizados. Detecta qué aspectos destacados existen en un punto específico dentro de un documento. Esta interactividad es valiosa para las funciones web complejas en las que varios destacados pueden superponerse o existir dentro del DOM de sombra. Al proporcionar una detección precisa de los momentos destacados basada en puntos, la API permite a los desarrolladores administrar las interacciones dinámicas con momentos destacados personalizados de manera más eficaz. Por ejemplo, los desarrolladores pueden responder a los clics del usuario o a los eventos de desplazamiento del mouse sobre las regiones destacadas para activar tooltips personalizados, menús contextuales o cualquier otra función interactiva.

Cambia la sincronización de la promesa de finalización de la transición de vista

El tiempo actual de la promesa finalizada ocurre dentro de los pasos del ciclo de vida de la renderización. Esto significa que el código que se ejecuta como resultado de la resolución de la promesa se produce después de que se genera el fotograma visual que quita la transición de vista. Esto puede provocar un parpadeo al final de la animación si la secuencia de comandos mueve los estilos para conservar un estado visualmente similar. Este cambio resuelve el problema trasladando los pasos de limpieza de ViewTransition para que se ejecuten de forma asíncrona después de que se complete el ciclo de vida.

Agrega el atributo fuente ToggleEvent

El atributo source de un ToggleEvent contiene el elemento que activó el ToggleEvent, si corresponde. Por ejemplo, si un usuario hace clic en un elemento <button> con el atributo popovertarget o commandfor establecido para abrir una ventana emergente, el evento ToggleEvent que se activa en la ventana emergente tendrá su atributo de fuente establecido en el elemento <button> de invocación.

Evita que el elemento foreignObject de SVG contamine el lienzo para las URLs de BLOB

Todos los navegadores admiten desde hace mucho tiempo el uso de un elemento <img> con una fuente SVG en una operación drawImage de Canvas HTML. Sin embargo, el comportamiento de la contaminación del lienzo varía según la plataforma. Todos los navegadores marcan el lienzo como contaminado cuando la fuente SVG incluye una etiqueta foreignObject y se hace referencia a ella con un URI HTTP. Cuando se hace referencia al mismo SVG a través de un URI de datos, todos los navegadores no marcan el lienzo como no seguro. Sin embargo, cuando se usa un URI de BLOB, tanto Chromium (antes de este cambio) como WebKit contaminan el lienzo, pero Gecko no lo hace. Cuando se lance esta función, el comportamiento de Chromium coincidirá con el de Gecko, lo que permitirá usar una mayor variedad de contenido SVG en las llamadas de drawImage del lienzo sin contaminar.

Admite el descriptor font-variation-settings en @font-face rule

CSS permite a los desarrolladores ajustar el peso, el ancho, la inclinación y otros ejes de una fuente con la propiedad font-variation-settings en elementos individuales. Sin embargo, los navegadores basados en Chromium no admiten esta propiedad dentro de las declaraciones @font-face. Esta función admite la sintaxis basada en cadenas para font-variation-settings, como se define en CSS Fonts Level 4. Las etiquetas de funciones no válidas o no reconocidas se ignoran según las especificaciones. No se admiten formularios binarios ni no estándares. Las fuentes variables se adoptan cada vez más por su rendimiento y flexibilidad tipográfica. Agregar compatibilidad con este descriptor en Chromium mejora el control, reduce la repetición y admite un enfoque más escalable y moderno para la tipografía web.

API web

Convierte Uint8Array a Base64 y hexadecimal, y viceversa

Base64 es una forma común de representar datos binarios arbitrarios como ASCII. JavaScript tiene Uint8Arrays para los datos binarios. Sin embargo, carece de un mecanismo integrado para codificar esos datos como base64 o para tomar datos base64 y producir un Uint8Array correspondiente. Esta función agrega la capacidad y los métodos para convertir cadenas hexadecimales y Uint8Arrays.

Usa la opción ReadableStreamBYOBReader min

Esta función introduce una opción min al método ReadableStreamBYOBReader.read(view) existente. El método ya acepta un ArrayBufferView en el que lee datos, pero actualmente no garantiza cuántos elementos se escriben antes de que se resuelva la lectura. Si especificas un valor de min, puedes requerir que la transmisión espere hasta que haya al menos esa cantidad de elementos disponibles antes de resolver la lectura. Esto mejora el comportamiento actual, en el que las lecturas pueden resolverse con menos elementos de los que puede contener la vista.

En algunos casos, es importante distinguir en el servidor entre las cookies establecidas por el servidor y las establecidas por el cliente. Uno de esos casos involucra las cookies que el servidor siempre establece de forma normal. Sin embargo, es posible que se establezcan códigos inesperados (como un exploit de XSS, una extensión maliciosa o una confirmación de un desarrollador confundido) en el cliente. Esta propuesta agrega un indicador que permite que los servidores hagan esa distinción. Más específicamente, define los prefijos __Http y __HostHttp, que garantizan que no se establezca una cookie en el cliente con una secuencia de comandos.

Restricciones de acceso a la red local

Chrome 140 restringe la capacidad de realizar solicitudes a la red local del usuario, lo que requiere un mensaje 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 (como una intranet) a bucle invertido. Limitar la capacidad de los sitios web para realizar estas solicitudes detrás de un permiso mitiga el riesgo de ataques de falsificación de solicitudes entre sitios contra dispositivos de red locales, como routers. También reduce la capacidad de los sitios para usar estas solicitudes y crear una huella digital de la red local del usuario. Este permiso está restringido a contextos seguros. Si se otorga, el permiso también relaja el bloqueo de contenido mixto para las solicitudes de red local, ya que muchos dispositivos locales no pueden obtener certificados TLS de confianza pública por varios motivos.

Obtén más información en Nuevo mensaje de permiso para el acceso a la red local.

Permite que las secuencias de comandos de SharedWorker hereden el controlador para las URLs de secuencias de comandos de BLOB

La especificación indica que los trabajadores deben heredar controladores para la URL de BLOB. Sin embargo, el código existente permite que solo los dedicated workers hereden el controlador. Los shared workers no lo heredan. Esto corrige el comportamiento de Chrome para que se alinee con la especificación. La política empresarial SharedWorkerBlobURLFixEnabled controla esta función.

Agregar ServiceWorkerStaticRouterTimingInfo

Esta función agrega información de sincronización para la API de enrutamiento estático de ServiceWorker, que se expone en la API de navegación y la API de recursos para uso de los desarrolladores. ServiceWorker proporciona información de sincronización para marcar ciertos puntos en el tiempo.

Esta función agrega dos elementos de información de tiempo relevantes para la API de Static Routing:

  • RouterEvaluationStart: Es el tiempo que se tarda en comenzar a hacer coincidir una solicitud con las reglas del router registradas.
  • CacheLookupStart: Es el tiempo para comenzar a buscar el almacenamiento en caché si la fuente es "cache".

Además, esta función agrega dos elementos de información sobre la fuente del router: la fuente del router coincidente y la fuente del router final.

Habilita la creación condicional de la autenticación web en Android (no se lanzará)

Apps web aisladas

Presentamos la API de Controlled Frame

Esta función agrega una API de Controlled Frame que solo está disponible para las apps web aisladas (IWA). Al igual que las APIs con nombres similares en otras plataformas, Controlled Frame permite incorporar todo el contenido, incluso el contenido de terceros que no se puede incorporar en <iframe>. Controlled Frame también permite controlar el contenido incorporado con una colección de métodos y eventos de la API. Para obtener más información sobre las apps web aisladas, consulta la explicación de las apps web aisladas.

Nuevas pruebas de origen

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

Agrega el evento clipboardchange

El evento clipboardchange se activa cada vez que una app web o cualquier otra aplicación del sistema cambia el contenido del portapapeles del sistema. Esto permite que las apps web, como los clientes de escritorio remoto, mantengan sus portapapeles sincronizados con el portapapeles del sistema. Proporciona una alternativa eficiente para sondear el portapapeles con JavaScript en busca de cambios.

Cómo habilitar las notificaciones de llamadas entrantes

Esta función extiende la API de Notifications para permitir que las PWA instaladas envíen notificaciones de llamadas entrantes, es decir, notificaciones con botones de estilo de llamada y un tono de llamada. Esta extensión ayuda a las apps web de VoIP a crear experiencias más atractivas, ya que facilita a los usuarios reconocer y responder las notificaciones de llamadas. Además, esta función ayuda a reducir la brecha entre las implementaciones nativas y web de las apps que tienen ambas.

Presentamos la API de clave-valor de Crash Reporting

Esta función introduce una nueva API de clave-valor, tentativamente window.crashReport, respaldada por un mapa por documento que contiene datos agregados a los informes de fallas.

Los datos colocados en el mapa de respaldo de esta API se envían en CrashReportBody si se produce alguna falla en el proceso de renderización en el sitio. Esto permite a los desarrolladores depurar qué estado específico de su aplicación podría estar causando una falla determinada.

Bajas y eliminaciones

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

En esta versión de Chrome, se dejó de usar una función.

Se dejaron de usar reglas especiales de tamaño de fuente para <h1> dentro de algunos elementos

La especificación de HTML contiene una lista de reglas especiales para las etiquetas <h1> anidadas dentro de los elementos <article>, <aside>, <nav> o <section>.

Estas reglas especiales están obsoletas porque causan problemas de accesibilidad. Es decir, reducen visualmente el tamaño de la fuente de los <h1> anidados para que parezcan <h2>, pero nada en el árbol de accesibilidad refleja este cambio visual.