Publicado: 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 escrita en 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 píxeles en 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 se encuentra 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-delayanimation-timing-functionanimation-iteration-countanimation-directionanimation-play-state
Habilita las transiciones de vista anidadas
Esta función permite que las transiciones de vista generen un árbol de seudoelementos anidados 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 las propiedades de <body> al viewport. 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 de larga data: propaga overscroll-behavior desde <body> en lugar de 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 que se usa 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 los efectos visuales parpadeantes o destellantes 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 de los usuarios 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 de finalización de la promesa actual se produce 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 ejecuta después de que se produce 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, ya que los pasos de limpieza de ViewTransition se ejecutan de forma asíncrona después de que se completa el ciclo de vida.
Agrega el atributo fuente ToggleEvent
El atributo source de un objeto ToggleEvent contiene el elemento que activó el evento 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 origen establecido en el elemento <button> de invocación.
Evita que el elemento foreignObject 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 de @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 moderno y escalable 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 datos binarios. Sin embargo, no tiene un mecanismo integrado para codificar esos datos como Base64 ni para tomar datos Base64 y producir un Uint8Array correspondiente. Esta función agrega la capacidad y los métodos para convertir entre 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 disponible al menos esa cantidad de elementos 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.
Prefijo de cookie HTTP
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 normalmente siempre establece el servidor. Sin embargo, es posible que se establezcan en el cliente códigos inesperados (como un exploit de XSS, una extensión maliciosa o una confirmación de un desarrollador confundido). Esta propuesta agrega un indicador que permite a los servidores hacer 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 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 (como una intranet) a un 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 local, como routers. También 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. Si se otorga, el permiso también flexibiliza 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 diversos 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 que los desarrolladores la usen. 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 para comenzar a hacer coincidir una solicitud con las reglas del router registradas.CacheLookupStart: Es el momento de comenzar a buscar el almacenamiento en caché si la fuente es"cache".
Además, esta función agrega dos elementos de información de 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 disponible solo 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 APW 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 que los usuarios reconozcan y respondan las notificaciones de llamadas. Además, esta función ayuda a cerrar la brecha entre las implementaciones nativas y web de las apps que tienen ambas.
Presentamos la API de par clave-valor de Crash Reporting
Esta función presenta una nueva API de par 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 renderizador en el sitio. Esto permite que los desarrolladores depuren qué estado específico de su aplicación podría estar causando una falla determinada.
Bajas y retiros
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.
Baja de las reglas especiales de tamaño de fuente para <h1> en 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.