Versión beta de Chrome 139

Fecha de publicación: 25 de junio 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 enumeran aquí a través de los vínculos proporcionados o de la lista en ChromeStatus.com. Chrome 139 está en versión beta desde el 25 de junio de 2025. Puedes descargar la versión más reciente en Google.com para computadoras o en Google Play Store en Android.

CSS

En esta versión, se agregan seis funciones nuevas de CSS y de la IU.

Cortocircuito de var() y attr()

Cuando no se toma el valor de resguardo, las funciones var() y attr() se evalúan sin buscar ciclos en ese valor. El siguiente CSS funciona porque existen --green y --blue.

--green: green;
--blue: blue;
--a: var(--green, var(--b));
--b: var(--blue, var(--a));

Propiedad caret-animation de CSS

Chrome ya admitía la animación de la propiedad caret-color, pero, cuando se animaba, el comportamiento de parpadeo predeterminado del cursor interfería con la animación. La propiedad caret-animation de CSS tiene dos valores posibles: auto y manual, donde auto significa el valor predeterminado del navegador (parpadeo) y manual significa que el desarrollador web controla la animación del signo de intercalación. La propiedad también permite que los usuarios inhabiliten el parpadeo con una hoja de estilo de usuario.

Forma de las esquinas

Habilita las esquinas de estilo, además del border-radius existente, especificando la forma o la curvatura de la esquina. Esto te permite crear formas como círculos cuadrados, muescas y cucharadas, y animar entre ellas. Obtén más información en esta publicación de Amit Sheen.

Continúa ejecutando transiciones cuando cambies al valor de transición inicial.

Cuando cambian las propiedades relacionadas con la transición, solo deben afectar las transiciones que se iniciaron recientemente. Esto significa que, si cambias las propiedades de transición, a menos que también cambies las propiedades que tienen animaciones de transición activas, esas animaciones de transición continuarán con la duración, la aceleración, etcétera, especificadas anteriormente. Blink canceló incorrectamente las transiciones cuando la propiedad de transición se estableció en "none", aunque no las cancela si solo cambias la duración de la transición. Con esta función, Blink será coherente con WebKit y Gecko, lo que permitirá que las transiciones activas sigan ejecutándose, a menos que o hasta que cambie el valor de su propiedad, lo que activará una nueva actualización de transición.

Funciones personalizadas de CSS

Las funciones personalizadas son similares a las propiedades personalizadas, pero, en lugar de mostrar un valor único y fijo, muestran valores basados en otras propiedades personalizadas, parámetros y condicionales.

@function --negate(--value) {
result: calc(var(--value) * -1);
}

div {
--gap: 1em;
margin-top: --negate(var(--gap));
}

Admite width y height como atributos de presentación en elementos <svg> anidados

Admite la aplicación de width y height como atributos de presentación en elementos anidados <svg> a través de CSS y el lenguaje de marcado SVG. Este enfoque doble proporciona aún más flexibilidad, lo que te permite administrar y diseñar elementos SVG de manera más eficiente dentro de diseños complejos.

API web

Manifiesto de la app web: Especifica la elegibilidad de actualización. Las URLs de los íconos tienen el atributo Cache-Control: immutable

Especifica un algoritmo de elegibilidad de actualización en la especificación del manifiesto. Esto hace que el proceso de actualización sea más determinístico y predecible, lo que les brinda a los desarrolladores más control sobre si se deben aplicar actualizaciones a las instalaciones existentes (y cuándo) y permite quitar la "limitación de comprobación de actualización" que los usuarios-agentes deben implementar actualmente para evitar desperdiciar recursos de red.

Mejoras de rendimiento de la detección de profundidad de WebXR

Expone varios mecanismos nuevos para personalizar el comportamiento de la función de detección de profundidad dentro de una sesión de WebXR, con el objetivo de mejorar el rendimiento de la generación o el consumo del búfer de profundidad. Los mecanismos clave expuestos son los siguientes: la capacidad de solicitar el búfer de profundidad sin procesar o sin problemas, la capacidad de solicitar que el tiempo de ejecución detenga o reanude la provisión del búfer de profundidad y la capacidad de exponer un búfer de profundidad que no se alinee exactamente con la vista del usuario, de modo que el usuario-agente no necesite realizar reproyecciones innecesarias en cada fotograma.

Permite más caracteres en las APIs de DOM de JavaScript

El analizador HTML siempre (o durante mucho tiempo) permitió que los elementos y atributos tuvieran una amplia variedad de caracteres y nombres válidos, pero las APIs de DOM de JavaScript que crean los mismos elementos y atributos son más estrictas y no coinciden con el analizador. Este cambio relaja la validación de las APIs de DOM de JavaScript para que coincidan con el analizador HTML.

Comando de invocador request-close

Los elementos de diálogo se pueden cerrar a través de una variedad de mecanismos. A veces, los desarrolladores quieren tener la capacidad de evitar el cierre. Para lograrlo, los diálogos activan un evento de cancelación. Originalmente, esto solo se activaba a través de una solicitud de cierre (por ejemplo, presionar la tecla Esc). Recientemente, se agregó una función requestClose() de JS que también activa el evento de cancelación. El comando request-close aporta esa nueva capacidad a la API de comandos de invocador declarativos.

WebGPU: Compatibilidad con texturas 3D para formatos comprimidos BC y ASTC

Las funciones texture-compression-bc-sliced-3d y texture-compression-astc-sliced-3d de WebGPU agregan, respectivamente, compatibilidad con texturas 3D para formatos comprimidos BC y ASTC.

Confirmación de pago seguro: Claves vinculadas al navegador

Agrega una firma criptográfica adicional sobre las aserciones de confirmación de pago seguro y la creación de credenciales. La clave privada correspondiente no se sincroniza en los dispositivos. Esto ayuda a los desarrolladores web a cumplir con los requisitos de vinculación de dispositivos para las transacciones de pago.

Confirmación de pago seguro: Actualización de la UX

Actualiza los elementos de la UX para el diálogo de SPC en Android Chrome. Además de la presentación de la UX, se agrega lo siguiente:

  • Permite que los comercios proporcionen una lista opcional de logotipos de entidades de pago relacionados con el pago que se mostrará.
  • Devuelve diferentes estados de salida al comercio según si el usuario desea continuar la transacción sin SPC o cancelarla.
  • Agrega un nuevo campo de etiqueta de detalles de pago al instrumento de pago para que el texto se presente en dos líneas.

WebGPU core-features-and-limits

La función core-features-and-limits indica que un adaptador y un dispositivo WebGPU admiten las funciones y los límites principales de la especificación.

Corrección de candidatos de prioridad de anclaje de desplazamiento

Actualmente, el algoritmo de anclaje de desplazamiento selecciona candidatos de prioridad cuando están disponibles como objetivos de anclaje. Los candidatos de prioridad son actualmente un elemento editable enfocado y aspectos destacados de búsqueda en la página. Esto puede causar una experiencia del usuario no óptima si hay un elemento contenteditable enfocado grande que tiene contenido cambiado fuera de la pantalla (el cursor termina desplazándose como consecuencia). Esta corrección cambia el algoritmo: en lugar de seleccionar el candidato de prioridad como el anclaje, usa el candidato como el alcance o la raíz del algoritmo de selección de anclaje normal que selecciona el elemento en pantalla más profundo como el anclaje.

Admite el atributo async para los elementos <script> de SVG

La interfaz SVGScriptElement en SVG 2.0 presenta el atributo async, similar a HTMLScriptElement. Este atributo permite que las secuencias de comandos se ejecuten de forma asíncrona, lo que mejora el rendimiento y la capacidad de respuesta de las aplicaciones web que usan SVG.

API de Web Speech integrado en el dispositivo

Esta función agrega compatibilidad con el reconocimiento de voz integrado en el dispositivo a la API de Web Speech, lo que permite que los sitios web garanticen que ni el audio ni el discurso transcrito se envíen a un servicio de terceros para su procesamiento. Los sitios web pueden consultar la disponibilidad del reconocimiento de voz integrado en el dispositivo para idiomas específicos, solicitar a los usuarios que instalen los recursos necesarios para el reconocimiento de voz integrado en el dispositivo y elegir entre el reconocimiento de voz integrado en el dispositivo o basado en la nube según sea necesario.

Borra window.name para las navegaciones entre sitios que cambian el grupo de contexto de navegación

Actualmente, el valor de la propiedad window.name se conserva durante todo el ciclo de vida de una pestaña, incluso con la navegación que cambia los grupos de contexto de navegación, lo que puede filtrar información y, potencialmente, usarse como un vector de seguimiento. Borrar la propiedad window.name soluciona este problema. Este debería ser un cambio de bajo riesgo, ya que buscar un contexto de navegación por nombre ya no funciona si está en otro grupo de contexto de navegación, por lo que el nombre no es realmente útil.

Política empresarial: ClearWindowNameCrossSiteBrowsing (dejará de funcionar en Chrome 142).

Extensiones de alcance de la app web

Agrega un "scope_extensions" campo de manifiesto de la app web que permite que las apps web extiendan su alcance a otros orígenes.

Esto permite que los sitios que controlan varios subdominios y dominios de nivel superior se presenten como una sola app web. Requiere que los orígenes enumerados confirmen la asociación con la app web mediante un archivo de configuración .well-known/web-app-origin-association.

Detección de tipo de MIME JSON compatible con las especificaciones

Chromium ahora reconoce todos los tipos MIME JSON válidos según se define en la especificación mimesniff de WHATWG. Esto incluye cualquier tipo de MIME cuyo subtipo termine con +json, además de los tradicionales application/json y text/json. Este cambio garantiza que las APIs y funciones web que dependen de la detección de JSON se comporten de manera coherente con el estándar de la plataforma web y otros navegadores. Una motivación clave para este cambio es corregir el comportamiento de importación de módulos JSON, en el que los tipos MIME JSON válidos anteriormente, como text/html+json y image/svg+json, no se cargarían como módulos.

API de Private Aggregation: Informes de errores agregados

Hay una variedad de condiciones de error que se pueden alcanzar cuando se usa la API de Private Aggregation. Por ejemplo, el presupuesto de privacidad podría agotarse, lo que impediría cualquier otra contribución al histograma. Esta función permite que los desarrolladores registren contribuciones de histogramas que solo se deben enviar si se produce un tipo de error en particular. Esta función admite la medición de la frecuencia de las condiciones de error y la división de estas mediciones en dimensiones relevantes especificadas por el desarrollador (p.ej., versión del código implementado). Como los errores en sí pueden ser información entre sitios, no podemos exponerlos a la página para los usuarios sin cookies de terceros. En cambio, esta función reutiliza las canalizaciones de informes agregados y con ruido existentes a través del servicio de agregación.

API de Reporting de fallas: Especifica crash-reporting para recibir solo informes de fallas

Esta función garantiza que los desarrolladores reciban solo informes de fallas especificando el extremo llamado crash-reporting. De forma predeterminada, los informes de fallas se entregan al extremo default, que recibe muchos otros tipos de informes además de los informes de fallas. Los desarrolladores pueden proporcionar una URL independiente al extremo conocido llamado crash-reporting para dirigir allí los informes de fallas, en lugar del extremo default.

Reduce la creación de huellas digitales en la información del encabezado Accept-Language

Reduce la cantidad de información que expone la cadena de valor del encabezado Accept-Language en las solicitudes HTTP y en navigator.languages. En lugar de enviar una lista completa de los idiomas preferidos del usuario en cada solicitud HTTP con el encabezado Accept-Language. Ahora enviamos el idioma más preferido del usuario en el encabezado Accept-Language. Para minimizar los riesgos de compatibilidad, el lanzamiento inicial reduce la información en el encabezado HTTP. En el futuro, reduciremos los métodos get de JavaScript navigator.languages relacionados.

Se activa un evento de error en lugar de arrojar una excepción para el trabajador bloqueado de CSP

Actualmente, cuando la Política de Seguridad del Contenido (CSP) lo bloquea, Chrome arroja un SecurityError desde el constructor de Worker y SharedWorker. La especificación requiere que se verifique la CSP como parte de la recuperación y activa eventos de error de forma asíncrona en lugar de arrojar una excepción cuando una secuencia de comandos ejecuta new Worker(url) o new SharedWorker(url). Este cambio hace que Chrome cumpla con las especificaciones: no arroja excepciones durante el constructor y activa eventos de error de forma asíncrona.

Nivel de audio para fotogramas codificados de RTC

Expone a la Web el nivel de audio de un fotograma codificado transmitido con RTCPeerConnection y expuesto con la transformación codificada de WebRTC.

Nuevas pruebas de origen

En Chrome 139, puedes habilitar las siguientes pruebas de origen nuevas origin trials.

API de Prompt

La API de Prompt está diseñada para interactuar con un modelo de lenguaje de IA usando entradas de texto, imagen y audio. Admite varios casos de uso, desde generar leyendas de imágenes y realizar búsquedas visuales hasta transcribir audio, clasificar eventos de sonido, generar texto siguiendo instrucciones específicas y extraer información o estadísticas del texto. Admite resultados estructurados que garantizan que las respuestas se ajusten a un formato predefinido, que suele expresarse como un esquema JSON, para mejorar la conformidad de las respuestas y facilitar la integración perfecta con las aplicaciones posteriores que requieren formatos de salida estandarizados. Esta API también se expone en las extensiones de Chrome. Esta prueba de origen es para la exposición en la Web.

Atributo de bloqueo de renderización de velocidad de fotogramas completa

Proponemos agregar un nuevo token de bloqueo de renderización full-frame-rate a los atributos de bloqueo. Cuando el renderizador esté bloqueado con el token full-frame-rate, funcionará a una velocidad de fotogramas más baja para reservar más recursos para la carga.

Modo de compatibilidad de WebGPU

Agrega un subconjunto de la API de WebGPU con habilitación y restricciones leves capaz de ejecutar APIs de gráficos más antiguas, como OpenGL y Direct3D11. Si habilitan este modo y cumplen con sus restricciones, los desarrolladores pueden extender el alcance de sus aplicaciones WebGPU a muchos dispositivos más antiguos que no tienen las APIs de gráficos modernas y explícitas que requiere WebGPU Core. En el caso de las aplicaciones simples, el único cambio necesario es especificar el "compatibility" featureLevel cuando se llama a requestAdapter. En el caso de las aplicaciones más avanzadas, es posible que se necesiten algunas modificaciones para adaptarse a las restricciones del modo. Dado que el modo de compatibilidad es un subconjunto, las aplicaciones resultantes también son aplicaciones WebGPU Core válidas y se ejecutarán incluso en usuarios-agentes que no admitan el modo de compatibilidad.

Bajas y retiros

En esta versión de Chrome, se presentan las bajas y los retiros que se indican a continuación. Visita ChromeStatus.com para obtener listas de bajas planificadas, bajas actuales y retiros anteriores.

En esta versión de Chrome, se quitan dos funciones.

Quita la compatibilidad con macOS 11

Chrome 138 es la última versión que admitirá macOS 11. A partir de Chrome 139, macOS 11 no es compatible, ya que está fuera de su ventana de compatibilidad con Apple. Ejecutar el navegador en un sistema operativo compatible es fundamental para mantener la seguridad. Chrome seguirá funcionando en Macs con macOS 11 y mostrará una barra de información de advertencia, pero no se actualizará. Si un usuario desea actualizar Chrome, debe actualizar su computadora a una versión compatible de macOS. Para las instalaciones nuevas de Chrome 139 y versiones posteriores, se requerirá macOS 12 o versiones posteriores.

Quita la detección automática del conjunto de caracteres ISO-2022-JP en HTML

Existen problemas de seguridad conocidos en torno a la detección automática del conjunto de caracteres para ISO-2022-JP. Dado que el uso es muy bajo y Safari no admite la detección automática de ISO-2022-JP, Chrome quita la compatibilidad para eliminar los problemas de seguridad.