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 desde Google.com para computadoras o desde Google Play Store en Android.
CSS y la IU
Posicionamiento de anclaje de CSS con transformaciones
Si un elemento posicionado con anclaje está unido 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 relación con el 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 los errores de selección y 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 son 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 ya no crea estas relaciones en los casos no semánticos.
Compatibilidad con @scroll-state desplazado
Te permite aplicar un diseño a los elementos secundarios de los 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; }
}
Se respeta overscroll-behavior para los desplazamientos con el teclado
Cuando estableces overscroll-behavior en un valor distinto de auto, el navegador no debe realizar el encadenamiento de desplazamiento. Chrome respeta este valor para el desplazamiento con el mouse o táctil. Sin embargo, el desplazamiento con el teclado lo ignoraba. Este cambio garantiza que el desplazamiento con el teclado también respete overscroll-behavior.
Respeta overscroll-behavior en los contenedores de desplazamiento que no se pueden desplazar
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 por ellos. Puedes usar overscroll-behavior para evitar la propagación del desplazamiento en un 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 container-name para las búsquedas de @container.
Anteriormente, la coincidencia de container-name para las búsquedas de @container utilizaba 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 provenían de diferentes árboles, por ejemplo, si la declaración container-type provenía de un árbol de sombra interno.
Con este cambio, los valores de container-name coinciden independientemente de la regla de @container o los orígenes de la declaración de container-type.
Cascada de CSS de SVG2
Alinea la implementación de Chrome con la especificación de SVG2 para que coincidan las reglas de CSS en los árboles de elementos <use>.
Los selectores coinciden con los elementos de instanciación <use> en lugar del subárbol de elementos de origen. Esto significa que los selectores ya no coinciden con los elementos secundarios y hermanos fuera del subárbol clonado. Lo que es más importante, los selectores de estado, como :hover, ahora coinciden en instancias de <use>.
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 que se dibuja, lo que mejora el rendimiento. Para brindar una mejor compatibilidad con este evento, los objetos XRView también reciben identificadores únicos para facilitar la vinculación 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 de HTML, declarando cuatro controladores de eventos nuevos: onanimationstart, onanimationiteration, onanimationend y onanimationcancel.
Solo faltaba el controlador de eventos onanimationcancel en el IDL de GlobalEventHandlers.
Para obtener más información, consulta la especificación de CSS Animations Level 1 y la sección GlobalEventHandlers de la especificación de HTML.
Método View Transitions waitUntil()
El 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 final (o, más precisamente, en un estado no en ejecución y no en pausa).
Esto funciona en la mayoría de los casos y proporciona una experiencia fluida para los desarrolladores. Sin embargo, para los casos más avanzados, esto no es suficiente porque, a veces, los desarrolladores quieren que el seudodiseño en árbol de la 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 desplazamiento. Cuando una línea de tiempo de desplazamiento controla la animación, el subárbol no debe destruirse cuando finalicen 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>
Se presenta el elemento <geolocation>, un control declarativo activado por el usuario para acceder a su ubicación. Maneja el flujo de permisos y proporciona datos de ubicación directamente al sitio, lo que, a menudo, elimina la necesidad de una llamada a la API de JavaScript independiente, lo que optimiza el recorrido del usuario y del desarrollador.
Esto soluciona el problema de larga data de las solicitudes de permisos que se activan directamente desde JavaScript sin un indicador sólido de la intención del usuario. Cuando se incorpora un elemento controlado por el navegador en la página, el clic del usuario proporciona un indicador claro y deliberado. Esto proporciona una mejor experiencia del usuario con la instrucción 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 del búfer uniforme
Ya no es necesario que los búferes uniformes declarados en sombreadores de WGSL tengan una alineación de 16 bytes en los elementos del array ni que se agregue relleno a los desplazamientos de estructuras anidadas hasta 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. Dateha sido un problema de larga data en ECMAScript. Temporal, un objeto Object global que actúa como un espacio de nombres de nivel superior (por ejemplo, Math) y que incorpora una API de fecha y hora moderna al lenguaje ECMAScript. Para obtener un desglose detallado de las motivaciones, consulta Cómo corregir la fecha de JavaScript: primeros pasos.
Compatibilidad con ping, hreflang, type y referrerPolicy para SVGAElement
Se agregó 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 cambian 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 a la sondeo del portapapeles (con JavaScript) para detectar cambios.
Política de permisos de User-Agent Client Hints ch-ua-high-entropy-values
Se agregó 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 de RTL
Se agregó compatibilidad con la duplicación a nivel de caracteres y glifos cuando se renderizan operadores de MathML en modo RTL.
Cuando se usa el modo RTL, algunos operadores se pueden invertir cambiándolos a otro punto de código (por ejemplo, un paréntesis derecho se convierte en un paréntesis izquierdo). Se trata de una duplicación a nivel de caracteres, 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 reflejan el glifo original directamente, pero esto podría cambiar el significado de los caracteres asimétricos, como la integral de contorno en sentido horario.
Compatibilidad con multidifusión para la API de Direct Sockets para apps web aisladas
Esta función permite que las apps web aisladas se suscriban a grupos de multidifusión, reciban paquetes UDP de ellos y especifiquen parámetros adicionales cuando envían paquetes UDP a direcciones de multidifusión.
Rendimiento y tiempo del evento: InteractionCount
La API de Event Timing forma parte del Registro de rendimiento y mide el rendimiento de las interacciones del usuario. Ciertos eventos tienen un valor de interactionId asignado, lo que resulta útil para agrupar interacciones relacionadas según gestos o entradas físicas 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 alta (p98 para las páginas con más de 50 interacciones totales).
Esta función se especificó hace 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 del mouse y del puntero 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 del puntero y el mouse (es decir, los eventos over, out, enter y leave), debe ser el ancestro más cercano que aún esté adjunto al DOM.
Chrome ha estado haciendo un seguimiento de un nodo incluso después de que se quitó del DOM. Como resultado, si el puntero se mueve a un nuevo nodo B después de que el nodo A de la prueba de hit se quita del DOM, la secuencia de eventos de límite (eventos pointerover, pointerout, pointerenter y pointerleave, y los eventos del mouse correspondientes) implica un movimiento del puntero de A a B. Según el nuevo consenso, la secuencia de eventos implica un movimiento del puntero desde "el elemento superior de A" hacia 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.
RTCDegradationPreference valor de enumeración 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 iOS y Android
Permite que las partes que confían en WebAuthn informen a los proveedores de almacenamiento de credenciales sobre las llaves de acceso existentes, 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 lanza en iOS y Android.
Además, la API de Signals 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 entidad externa indicaba que una credencial era desconocida o se había quitado, 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
Se expande la API de TextMetrics Canvas 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 una selección, una posición del cursor y una prueba de detección precisas. 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 introducen las bajas y las eliminaciones que se indican en esta sección. Visita ChromeStatus.com para ver listas de las obsolescencias planificadas, las obsolescencias actuales y las eliminaciones anteriores.
Se retirará la API de Topics
La API de Topics es una API que permite la segmentación de anuncios en función de 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 sobre las cookies de terceros, ahora daremos de baja y planeamos quitar la API de Topics (junto con otras tecnologías, como se describe en la página de estado de las funciones de Privacy Sandbox).
Se desaprobará la API de Protected Audience
La API de Protected Audience proporciona un método de publicidad basada en 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 respecto de las cookies de terceros, ahora daremos de baja la API de Protected Audience y planeamos quitarla (junto con otras tecnologías, como se describe en la página de estado de las funciones de Privacy Sandbox).
Retirar 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 sitio de origen.
Tras el anuncio de que Chrome mantendrá su enfoque actual respecto de las cookies de terceros, el equipo dará de baja y planea quitar la API de Shared Storage (junto con otras tecnologías, como se describe en la página de estado de las funciones de Privacy Sandbox).
Se dejó de usar 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 respecto de las cookies de terceros, el equipo planea dar de baja y quitar la API de Attribution Reporting (junto con otras APIs de Privacy Sandbox).
Se dejó de usar 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. Se diseñó originalmente para un futuro sin cookies de terceros.
Tras el anuncio de que Chrome mantendrá su enfoque actual respecto de las cookies de terceros, el equipo dará 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 las funciones de 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.
Se desaprobarán los Conjuntos de sitios web relacionados
Los Conjuntos de sitios web relacionados proporcionan un marco de trabajo para que los desarrolladores declaren relaciones entre sitios y habiliten el acceso limitado a las cookies entre sitios para fines específicos orientados al usuario. Esto se facilita a través del 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 sobre las cookies de terceros, ahora daremos 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 las funciones de Privacy Sandbox).
Se dejó de usar 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 un posible indicador. Esto permitiría que los sitios de nivel superior usen la API de Storage Access.
Tras el anuncio de que Chrome mantendrá su enfoque actual sobre las cookies de terceros, ahora daremos de baja y planeamos quitar requestStorageAccessFor (junto con otras tecnologías, como se describe en la página de estado de las funciones de Privacy Sandbox).
Se dejó de usar savedTabGroups como valor individual en SyncTypesListDisabled
La política empresarial 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 dejó de usar el tipo de datos savedTabGroups individual y ya no es 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 externas XML o DTD y las incorpora al análisis en circunstancias específicas. Se quitará esta función.
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 una DTD, contiene definiciones de entidades adicionales.
El analizador pasa hacia arriba esas solicitudes de carga externas.
Según la especificación XML de W3C, los procesadores no validadores no están obligados a leer entidades externas.
El equipo planea desaprobar la carga de definiciones de entidades externas en documentos XML que no usan XSLT.