Publicado el 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 indican aquí a través de los vínculos proporcionados o de la lista en ChromeStatus.com. Chrome 139 es 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 para Android.
CSS
En esta versión, se agregan seis funciones nuevas de CSS y de IU.
Cortocircuito de var()
y attr()
Cuando no se toma la alternativa, las funciones var()
y attr()
se evalúan sin buscar ciclos en esa alternativa. El siguiente código 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 parpadeante 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 cursor. La propiedad también permite que los usuarios inhabiliten el parpadeo con una hoja de estilo del usuario.
Forma de la esquina
Habilita las esquinas de diseño, además de la border-radius
existente, especificando la forma o la curvatura de la esquina. Esto te permite crear formas como círculos cuadrados, muescas y cortes, y animar entre ellas. Obtén más información en esta publicación de Amit Sheen.
Continúa ejecutando las transiciones cuando se cambia al valor de transición inicial.
Cuando cambian las propiedades relacionadas con la transición, solo deberían afectar a las transiciones que se inician 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 cancelaba incorrectamente las transiciones cuando la propiedad de transición se establecía 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 cambie el valor de su propiedad, lo que activará una nueva actualización de la transición.
Funciones personalizadas de CSS
Las funciones personalizadas son similares a las propiedades personalizadas, pero, en lugar de devolver un solo valor fijo, devuelven 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));
}
Se agregó compatibilidad con 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 <svg>
anidados a través de CSS y de marcado SVG. Este enfoque dual proporciona aún más flexibilidad, lo que te permite administrar y aplicar estilos a los 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 son Cache-Control: immutable
Especifica un algoritmo de elegibilidad para la 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 (y cuándo) se deben aplicar las actualizaciones a las instalaciones existentes, y permite quitar la "limitación de la verificación de actualizaciones" que los agentes de usuario deben implementar actualmente para evitar el desperdicio de recursos de red.
Mejoras en el rendimiento de WebXR Depth Sensing
Expone varios mecanismos nuevos para personalizar el comportamiento de la función de detección de profundidad en 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 suavizado, la capacidad de solicitar que el tiempo de ejecución deje de proporcionar el búfer de profundidad o reanude su provisión, y la capacidad de exponer un búfer de profundidad que no se alinea exactamente con la vista del usuario, de modo que el agente de usuario no necesite realizar reproyecciones innecesarias en cada fotograma.
Permite más caracteres en las APIs del DOM de JavaScript
El analizador de 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 del 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 del DOM de JavaScript para que coincidan con el analizador de HTML.
Comando de invocador de request-close
Los elementos de diálogo se pueden cerrar a través de diversos mecanismos, y, a veces, los desarrolladores quieren tener la capacidad de evitar el cierre. Para lograr esto, los diálogos activan un evento de cancelación. Originalmente, este evento solo se activaba a través de una solicitud de cierre (por ejemplo, al 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
incorpora 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 los formatos comprimidos BC y ASTC.
Confirmación de pago seguro: Claves vinculadas al navegador
Agrega una firma criptográfica adicional sobre las aserciones de la Confirmación de pago seguro y la creación de credenciales. La clave privada correspondiente no se sincroniza en los diferentes 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
Se actualizan los elementos de UX del diálogo de SPC en Chrome para Android. Además de la presentación de la UX, se agregan los siguientes elementos:
- 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 el SPC o cancelarla.
- Se agregó 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.
Se corrigió el candidato prioritario de anclaje de desplazamiento
Actualmente, el algoritmo de anclaje de desplazamiento selecciona candidatos prioritarios cuando están disponibles como objetivos de anclaje. Actualmente, los candidatos prioritarios son un elemento editable enfocado y resaltados de la función Buscar en la página. Esto puede provocar una experiencia del usuario no óptima si hay un elemento contenteditable grande enfocado 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 ancla, usa el candidato como el alcance o la raíz del algoritmo de selección de ancla regular que selecciona el elemento en pantalla más profundo como ancla.
Compatibilidad con el atributo async
para los elementos <script>
de SVG
La interfaz SVGScriptElement
en SVG 2.0 introduce 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 integrada 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 en el dispositivo para idiomas específicos, solicitar a los usuarios que instalen los recursos necesarios para el reconocimiento de voz en el dispositivo y elegir entre el reconocimiento de voz 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 cambio debería ser de bajo riesgo, ya que buscar un contexto de navegación por nombre ya no funciona si está en otro grupo de contextos 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
Se agregó un campo de manifiesto de la app web "scope_extensions"
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 a través de un archivo de configuración .well-known/web-app-origin-association
.
Detección de tipos de MIME JSON que cumplen con las especificaciones
Chromium ahora reconoce todos los tipos de MIME de JSON válidos según se definen 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 las 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 de las principales motivaciones para este cambio es corregir el comportamiento de importación del módulo JSON, en el que los tipos MIME de JSON válidos anteriormente, como text/html+json
y image/svg+json
, no se cargaban como módulos.
API de Private Aggregation: informes de errores agregados
Existen varias condiciones de error que se pueden producir cuando se usa la API de Private Aggregation. Por ejemplo, se podría agotar el presupuesto de privacidad, lo que impediría cualquier contribución adicional al histograma. Esta función permite a los desarrolladores registrar contribuciones de histogramas que solo se deben enviar si ocurre un tipo particular de error. Esta función permite medir la frecuencia de las condiciones de error y dividir estas mediciones en dimensiones relevantes especificadas por el desarrollador (p.ej., versión del código implementado). Dado que los errores en sí pueden ser información de varios sitios, no podemos simplemente 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 Crash Reporting: 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 endpoint default
, que recibe muchos otros tipos de informes además de los de fallas. Los desarrolladores pueden proporcionar una URL independiente al extremo conocido llamado crash-reporting
para dirigir los informes de fallas allí, en lugar de al extremo default
.
Reduce la creación de huellas digitales en la información del encabezado Accept-Language
Reduce la cantidad de información que la cadena de valor del encabezado Accept-Language
expone 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 preferido del usuario en el encabezado Accept-Language
. Para minimizar los riesgos de compatibilidad, en el lanzamiento inicial se reduce la información del encabezado HTTP. En el futuro, reduciremos los métodos de obtención de navigator.languages
JavaScript 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 que se activen 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, ya que no arroja excepciones durante el constructor y activa eventos de error de forma asíncrona.
Nivel de audio para los fotogramas codificados de RTC
Expone a la Web el nivel de audio de un fotograma codificado transmitido con RTCPeerConnection
y expuesto con WebRTC Encoded Transform.
Nuevas pruebas de origen
En Chrome 139, puedes habilitar las siguientes nuevas pruebas de origen.
API de Prompt
La API de Prompt está diseñada para interactuar con un modelo de lenguaje de IA a través de 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 a partir 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 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 de fotogramas completos a los atributos de bloqueo. Cuando el renderizador se bloquea con el token de velocidad de fotogramas completa, funcionará a una velocidad de fotogramas más baja para reservar más recursos para la carga.
Modo de compatibilidad de WebGPU
Se agrega un subconjunto de la API de WebGPU con habilitación opcional y restricciones leves que puede 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 de WebGPU a muchos dispositivos más antiguos que no tienen las APIs de gráficos modernas y explícitas que requiere WebGPU. En el caso de las aplicaciones simples, el único cambio obligatorio es especificar el "compatibility"
featureLevel cuando se llama a requestAdapter
. Para 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 válidas de WebGPU Core y se ejecutarán incluso en agentes de usuario que no admitan el modo de compatibilidad.
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 quitaron dos funciones.
Se quitó la compatibilidad con macOS 11
Chrome 138 es la última versión que admite macOS 11. A partir de Chrome 139, macOS 11 ya 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.
Se quitó la detección automática del conjunto de caracteres ISO-2022-JP en HTML
Existen problemas de seguridad conocidos relacionados con la detección automática de conjuntos 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 con este formato para eliminar los problemas de seguridad.