Publicado el 3 de diciembre 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. Para obtener más información sobre estas funciones, consulta los vínculos proporcionados o la lista en ChromeStatus.com. Descarga la versión más reciente de Google.com para computadoras o de Google Play Store en Android.
CSS y IU
Posicionamiento de anclaje de CSS con transformaciones
Si un elemento posicionado por anclaje está vinculado a un anclaje que tiene una transformación (o está contenido en un elemento con una transformación), el navegador resuelve las funciones anchor() y anchor-size() en función del cuadro delimitador del anclaje transformado.
Seudoelementos de resaltado de CSS para la búsqueda en la página
Expone el diseño de los resultados de la búsqueda en la página como el seudoelemento ::search-text, que es un seudoelemento de resaltado como los que se usan para la selección y los errores de ortografía. Esto te permite cambiar los colores de primer plano y de fondo, o agregar decoraciones de texto. Esto es especialmente útil si los valores predeterminados del navegador no tienen suficiente contraste con los colores de la página o no son adecuados por otros motivos.
Obtén más información en el blog de Igalia en Find-in-Page Highlight Styling.
No uses aria-details para el posicionamiento de anclaje
Es probable que el código para crear relaciones aria-details para casos de uso que no sean de ventanas emergentes del posicionamiento de anclaje haya sido un error. Dado que las ventanas emergentes y otras relaciones semánticas sí crean aria-details, y es probable que los casos de uso restantes no sean semánticos, Chrome ahora no crea estas relaciones en los casos no semánticos.
Compatibilidad con el desplazamiento @scroll-state
Te permite aplicar estilo a los descendientes de contenedores según la dirección de desplazamiento más reciente.
Ejemplo:
.scrolling-up {
translate: 80px 0;
transition: 0.4s translate;
}
html {
container-type: scroll-state;
}
@container scroll-state(scrolled: top) {
.scrolling-up { translate: 0 0; }
}
Respeta overscroll-behavior para los desplazamientos del teclado
Cuando estableces overscroll-behavior en un valor distinto de auto, el navegador no debe realizar el encadenamiento de desplazamiento. Chrome respeta esto para el desplazamiento con el mouse o táctil; sin embargo, los desplazamientos del teclado lo ignoraron. Este cambio garantiza que el desplazamiento del teclado también respete overscroll-behavior.
Respeta overscroll-behavior en contenedores de desplazamiento no desplazables
La propiedad overscroll-behavior se aplica a todos los elementos del contenedor de desplazamiento, independientemente de si esos elementos tienen contenido desbordado o si el usuario puede desplazarse. Puedes usar overscroll-behavior para evitar la propagación del desplazamiento en un telón de fondo overflow: hidden o un elemento overflow: auto sin necesidad de considerar si se desborda.
Coincidencia de container-name sin alcance de árbol
El navegador ignora el alcance del árbol cuando coincide con container-name para las consultas @container.
Anteriormente, la coincidencia de container-name para las consultas @container usaba nombres o referencias con alcance de árbol. Esto significaba que el mismo nombre no coincidiría si la regla @container y la propiedad container-type se originaban en árboles diferentes, por ejemplo, si la declaración container-type provenía de un árbol de sombra interno.
Con este cambio, los valores container-name coinciden independientemente de la regla @container o de los orígenes de la declaración container-type.
Cascada de CSS SVG2
Alinea la implementación de Chrome con la especificación SVG2 para hacer coincidir las reglas de CSS
en los árboles de elementos <use>.
Los selectores coinciden con los elementos de instancia <use> en lugar del
subárbol de elementos de origen. Esto significa que los selectores ya no coinciden con los elementos superiores y hermanos fuera del subárbol clonado. Lo que es más importante, los selectores de estado
como :hover ahora coinciden en <use> instancias.
API web
XRVisibilityMaskChange
Agrega un evento XRVisibilityMaskChange que proporciona una lista de vértices y de índices para representar la malla de la parte visible de la ventana gráfica del usuario.
Estos datos se pueden usar para limitar con confianza la cantidad de la ventana gráfica dibujada, lo que mejora el rendimiento. Para mejorar la compatibilidad con este evento, los objetos XRView también reciben identificadores únicos para permitir un emparejamiento más sencillo con las máscaras asociadas. Esta es una extensión de la especificación principal de WebXR.
Expone el evento onanimationcancel a GlobalEventHandlers
CSS Animations Level 1 extiende la interfaz GlobalEventHandlers, definida en la especificación HTML, declarando cuatro controladores de eventos nuevos: onanimationstart, onanimationiteration, onanimationend y onanimationcancel.
Solo faltaba el controlador de eventos onanimationcancel en el IDL GlobalEventHandlers.
Para obtener más información, consulta la especificación CSS Animations Level 1 y la sección GlobalEventHandlers de la especificación HTML.
Método waitUntil() de View Transitions
ViewTransition construye automáticamente un árbol de seudoelementos para mostrar y animar los elementos participantes en la transición. Según la especificación, este subárbol se construye cuando la transición de vista comienza a animarse y se destruye cuando las animaciones asociadas con todos los seudoelementos de transición de vista están en el estado terminado (o, más precisamente, en un estado no en ejecución y no en pausa).
Esto funciona para la mayoría de los casos y proporciona una experiencia fluida para los desarrolladores. Sin embargo, para casos más avanzados, esto no es suficiente porque, a veces, los desarrolladores quieren que el seudoárbol de transición de vista persista más allá del estado de finalización de la animación.
Un ejemplo es vincular las transiciones de vista con las animaciones controladas por el desplazamiento. Cuando la animación se controla con una línea de tiempo de desplazamiento, el subárbol no debe destruirse cuando finalizan las animaciones, ya que el desplazamiento hacia atrás aún puede animar los seudoelementos.
Para habilitar usos avanzados de la transición de vista, este intent agrega una función waitUntil() en el objeto ViewTransition que toma una promesa. Esta promesa retrasa la destrucción del seudoárbol hasta que se resuelve.
El elemento <geolocation>
Presenta el elemento <geolocation>, un control declarativo y activado por el usuario
para acceder a la ubicación del usuario. Simplifica el recorrido del usuario y del desarrollador controlando el flujo de permisos y proporcionando directamente datos de ubicación al sitio, lo que suele eliminar la necesidad de una llamada a la API de JavaScript independiente.
Esto aborda el problema de larga data de las solicitudes de permisos que se activan directamente desde JavaScript sin una señal sólida de la intención del usuario. Cuando se incorpora un elemento controlado por el navegador en la página, el clic del usuario proporciona una señal clara y deliberada. Esto proporciona una mejor experiencia del usuario de solicitud y, lo que es fundamental, una ruta de recuperación para los usuarios que rechazaron el permiso anteriormente.
WebGPU: Función subgroup_id
Los valores integrados subgroup_id y num_subgroups están disponibles cuando se habilita la extensión de subgrupos.
WebGPU: Diseño estándar de búfer uniforme
Ya no es necesario que los búferes uniformes declarados en sombreadores WGSL tengan una alineación de 16 bytes en los elementos de array ni que rellenen los desplazamientos de estructura anidados a un múltiplo de 16 bytes.
La API de Temporal
La API de Temporal en ECMA262
proporciona objetos y funciones estándar para trabajar con fechas y horas. Date
ha sido un problema de larga data en ECMAScript. Temporal, un Object global que actúa como un espacio de nombres de nivel superior (por ejemplo, Math), que lleva una API de fecha y hora moderna al lenguaje ECMAScript. Para obtener un desglose detallado de las motivaciones,
consulta Fixing JavaScript Date: Getting
Started.
Compatibilidad con ping, hreflang, type y referrerPolicy para SVGAElement
Agrega compatibilidad con los atributos ping, hreflang, type y referrerPolicy en SVGAElement, lo que alinea su comportamiento con HTMLAnchorElement para un manejo coherente de los vínculos en HTML y SVG.
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, por ejemplo, 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.
Política de permisos ch-ua-high-entropy-values de User-Agent Client Hints
Agrega compatibilidad con una política de permisos ch-ua-high-entropy-values que permite que un sitio de nivel superior restrinja qué documentos pueden recopilar sugerencias del cliente de alta entropía con la API de JavaScript navigator.userAgentData.getHighEntropyValues().
Ya es posible restringir la recopilación de sugerencias de alta entropía a través de HTTP con las políticas de permisos existentes por sugerencia del cliente.
Duplicación de operadores MathML RTL
Agrega compatibilidad con la duplicación a nivel de carácter y de glifo cuando se renderizan operadores MathML en modo RTL.
Cuando se usa el modo RTL, algunos operadores se pueden duplicar cambiándolos a otro punto de código (por ejemplo, un paréntesis derecho se convierte en un paréntesis izquierdo). Esta es una duplicación a nivel de carácter, con equivalencias definidas por la propiedad Bidi_Mirrored de Unicode.
Algunos operadores no tienen un carácter de duplicación adecuado. En este caso, se aplica la duplicación a nivel de glifo, con la función de fuente rtlm, en la que otro glifo puede reemplazarlo en un contexto duplicado. Algunas implementaciones existentes duplican el glifo original directamente, pero esto podría cambiar el significado de los caracteres asimétricos, como la integral de contorno en el sentido de las manecillas del reloj.
Compatibilidad con multicast para la API de Direct Sockets para apps web aisladas
Esta función permite que las apps web aisladas se suscriban a grupos de multicast, reciban paquetes UDP de ellos y especifiquen parámetros adicionales cuando envían paquetes UDP a direcciones de multicast.
Rendimiento y sincronización de eventos: InteractionCount
La API de Event Timing forma parte de la línea de tiempo de rendimiento y mide el rendimiento de las interacciones del usuario. Ciertos eventos tienen un valor interactionId asignado, lo que es útil para agrupar interacciones relacionadas en función de entradas o gestos físicos comunes del usuario.
Esta función agrega performance.interactionCount, que es la cantidad total de interacciones que se produjeron en la página.
En particular, esta función es útil para calcular el valor de la métrica Interaction to Next Paint (INP), que requiere conocer la cantidad total de interacciones para calcular una puntuación de percentil alto (p98 para páginas con más de 50 interacciones totales).
Esta función se especificó durante mucho tiempo, se creó un prototipo en Chromium anteriormente, pero nunca se lanzó, forma parte de Interop 2025 y ya está disponible en otros navegadores.
Eventos de límite de puntero y mouse interoperables después de los cambios en el DOM
Después de que se quita un destino de evento del DOM, el destino lógico del puntero, como lo implican los eventos de límite de puntero y mouse (es decir, los eventos over, out, enter y leave), debe ser el ancestro más cercano que aún esté conectado al DOM.
Chrome ha estado haciendo un seguimiento de un nodo incluso después de que se quita del DOM. Como resultado, si el puntero se mueve a un nodo B nuevo después de que se quita el nodo A de prueba de posicionamiento del DOM, la secuencia de eventos de límite (eventos pointerover, pointerout, pointerenter, pointerleave y los eventos de mouse correspondientes) implicaba un movimiento del puntero de A a B. Según el nuevo consenso, la secuencia de eventos implica un movimiento del puntero de "superior de A" a B.
Bloqueo del puntero en Android
Proporciona acceso al movimiento sin procesar del mouse bloqueando el destino de los eventos del mouse en un solo elemento y ocultando el cursor del mouse. La API de Pointer Lock ya es compatible con computadoras, y este lanzamiento es para la compatibilidad con Android.
Valor de enumeración RTCDegradationPreference maintain-framerate-and-resolution
maintain-framerate-and-resolution inhabilita la adaptación de video interna de WebRTC.
Esto permite que la aplicación implemente su propia lógica de adaptación y evita la interferencia de la adaptación interna.
API de WebAuthn Signal en Android y iOS
Permite que las partes que confían en WebAuthn informen información sobre las llaves de acceso existentes a los proveedores de almacenamiento de credenciales, de modo que las credenciales incorrectas o revocadas se puedan actualizar o quitar de la IU del proveedor y del sistema.
Esta función ya estaba disponible en computadoras y ahora se envía en Android y iOS.
Además, la API de Signal ahora admite un mecanismo de seguridad para las llaves de acceso del Administrador de contraseñas de Google en todas las plataformas compatibles. Anteriormente, cuando una parte que confiaba indicaba que una credencial era desconocida o se quitaba, la llave de acceso se borraba de forma permanente.
Ahora, el Administrador de contraseñas de Google oculta la llave de acceso en lugar de borrarla. Las llaves de acceso se pueden recuperar llamando a signalAllAcceptedCredentials con una lista de llaves de acceso ocultas anteriormente.
Nuevas pruebas de origen
En Chrome 144, puedes habilitar las siguientes pruebas de origen.
TextMetrics de Canvas mejorado
Expande la API de Canvas TextMetrics para admitir rectángulos de selección, consultas de cuadros delimitadores y operaciones basadas en clústeres de glifos.
Esta funcionalidad permite aplicaciones complejas de edición de texto con selección precisa, posicionamiento del cursor y pruebas de posicionamiento. Además, la renderización basada en clústeres facilita efectos de texto sofisticados, como animaciones y estilos de caracteres independientes.
Bajas y retiros
En esta versión de Chrome, se presentan las bajas y los retiros que se enumeran en esta sección. Visita ChromeStatus.com para obtener listas de bajas planificadas, bajas actuales y retiros anteriores.
Baja de la API de Topics
La API de Topics es una API para habilitar la segmentación de anuncios basada en los intereses generales de navegación de un usuario, sin exponer su historial de navegación exacto.
Tras el anuncio de que Chrome mantendrá su enfoque actual de las cookies de terceros, ahora estamos dejando de estar disponible y planeamos quitar la API de Topics (junto con otras tecnologías, como se describe en la página de estado de la función Privacy Sandbox).
Baja de la API de Protected Audience
La API de Protected Audience proporciona un método de publicidad de grupos de interés sin cookies de terceros ni seguimiento de usuarios en los sitios.
Tras el anuncio de que Chrome mantendrá su enfoque actual de las cookies de terceros, ahora estamos dando de baja y planeamos quitar la API de Protected Audience (junto con otras tecnologías, como se describe en la página de estado de la función Privacy Sandbox).
Baja de la API de Shared Storage
La API de Shared Storage es una API web que preserva la privacidad para habilitar el almacenamiento que no está particionado por el sitio de origen.
Tras el anuncio de que Chrome mantendrá su enfoque actual de las cookies de terceros, el equipo está dejando de estar disponible y planea la eliminación de la API de Shared Storage (junto con otras tecnologías, como se describe en la página de estado de la función Privacy Sandbox).
Baja de la API de Attribution Reporting
La API de Attribution Reporting es una API diseñada para medir las conversiones de anuncios sin cookies de terceros ni seguimiento de usuarios en los sitios.
Tras el anuncio de que Chrome mantendrá su enfoque actual de las cookies de terceros, el equipo planea dejar de estar disponible y quitar la API de Attribution Reporting (junto con otras APIs de Privacy Sandbox).
Baja de la API de Private Aggregation
La API de Private Aggregation es un mecanismo genérico para medir datos agregados en varios sitios de una manera que preserva la privacidad. Originalmente, se diseñó para un futuro sin cookies de terceros.
Tras el anuncio de que Chrome mantendrá su enfoque actual de las cookies de terceros, el equipo está dando de baja y planea quitar la API de Private Aggregation (junto con otras tecnologías, como se describe en la página de estado de la función Privacy Sandbox). Esta API solo se expone a través de las APIs de Shared Storage y Protected Audience, que también se planean dar de baja y quitar. Por lo tanto, no se requiere trabajo adicional para la agregación privada.
Baja de Conjuntos de sitios web relacionados
Los Conjuntos de sitios web relacionados proporcionan un framework para que los desarrolladores declaren relaciones entre sitios, para permitir el acceso limitado a cookies en varios sitios para fines específicos orientados al usuario. Esto se facilita mediante el uso de la API de Storage Access y document.requestStorageAccessFor (consulta la siguiente sección).
Tras el anuncio de que Chrome mantendrá su enfoque actual de las cookies de terceros, ahora estamos dando de baja y planeamos quitar los Conjuntos de sitios web relacionados (junto con otras tecnologías, como se describe en la página de estado de la función Privacy Sandbox).
Baja de document.requestStorageAccessFor
La API de requestStorageAccessFor es una extensión de la API de Storage Access que permite que un sitio de nivel superior solicite acceso a cookies sin particionar ("de origen") en nombre de sitios incorporados. Los navegadores tendrían la facultad de otorgar o denegar el acceso, con mecanismos como la membresía de Conjuntos de sitios web relacionados como una posible señal. Esto permitiría el uso de la API de Storage Access por parte de sitios de nivel superior.
Tras el
anuncio
de que Chrome mantendrá su enfoque actual de las cookies de terceros, ahora estamos
dando de baja y planeamos quitar requestStorageAccessFor (junto con
otras tecnologías, como se describe en la página de estado de la función Privacy Sandbox).
Baja de savedTabGroups como valor individual en SyncTypesListDisabled
La
SyncTypesListDisabled
SyncTypesListDisabled permite a los administradores inhabilitar la sincronización del tipo de datos
savedTabGroups en plataformas de escritorio. Sin embargo, en las plataformas para dispositivos móviles, la sincronización de grupos de pestañas ya se administra con el tipo de datos tabs. Para alinear
el comportamiento de la versión para computadoras con la versión para dispositivos móviles y simplificar la administración de la sincronización, se dejará de usar el tipo de datos individual
savedTabGroupsy ya no será un valor personalizable de forma individual
dentro de la política
SyncTypesListDisabled.
Entidades cargadas externamente en el análisis de XML
Chrome recupera de forma síncrona entidades XML externas o DTD y las incorpora al análisis en circunstancias específicas. Se quitará esta funcionalidad.
http/tests/security/contentTypeOptions/xml-external-entity.xml proporciona un ejemplo: Las entidades externas se pueden definir en la parte final de la instrucción DOCTYPE y hacer referencia a recursos que se cargan de forma síncrona y se incluyen como contexto cuando se analiza XML.
Otro ejemplo de sintaxis es un DOCTYPE que, con la palabra clave SYSTEM seguida de una URL que apunta a un DTD, contiene definiciones de entidades adicionales.
Esas solicitudes de carga externa se pasan desde el analizador.
Según la especificación XML de W3C, no es necesario que los procesadores no validadores lean entidades externas.
El equipo planea dar de baja la carga de definiciones de entidades externas en documentos XML que no usan XSLT.