Fecha de lanzamiento estable: 4 de febrero de 2025
A menos que se indique lo contrario, los siguientes cambios se aplican a la versión del canal estable de Chrome 133 para Android, ChromeOS, Linux, macOS y Windows.
HTML y DOM
Es el valor de sugerencia del atributo popover.
La API de Popover especifica el comportamiento de dos valores del atributo popover: automático y manual. Esta función describe un tercer valor, popover=hint
. Las sugerencias, que suelen asociarse con comportamientos de tipo "ventana de información", tienen comportamientos ligeramente diferentes. En primer lugar, la diferencia es que una sugerencia está subordinada a la acción automática cuando se abren pilas anidadas de ventanas emergentes. Por lo tanto, es posible abrir un cuadro flotante de sugerencias no relacionado mientras permanece abierta una pila existente de cuadros flotantes automáticos.
El ejemplo canónico es que se abre un selector <select>
(popover=auto
) y se muestra un cuadro de información (popover=hint
) activado por el desplazamiento del mouse. Esa acción no cierra el selector <select>
.
Error de seguimiento #1416284 | Entrada de ChromeStatus.com
Mejoras en el invocador de ventanas emergentes y el posicionamiento de anclas
Agrega una forma imperativa de establecer relaciones de invocador entre las ventanas emergentes con popover.showPopover({source})
. Habilita las relaciones de invocador para crear referencias de elementos de anclaje implícitas.
Error de seguimiento #364669918 | Entrada de ChromeStatus.com
El pop-up anidado dentro del invocador no debería volver a invocarlo.
En el siguiente caso, hacer clic en el botón activa correctamente el popover. Sin embargo, hacer clic en el popover después de eso no debería cerrarlo.
<button popovertarget=foo>Activate
<div popover id=foo>Clicking me shouldn't close me</div>
</button>
Esto sucedía antes porque el clic del cuadro emergente se mostraba en <button>
y activaba el llamador, que cambiaba el estado del cuadro emergente a cerrado. Se cambió al comportamiento esperado.
Error de seguimiento #https://crbug.com/379241451 | Entrada de ChromeStatus.com
CSS
Función attr()
avanzada de CSS
Implementa la ampliación a attr()
especificada en el nivel 5 de CSS, que permite tipos además de <string>
y su uso en todas las propiedades CSS (además de la compatibilidad existente con el contenido de pseudoelementos).
MDN attr() | Error de seguimiento #246571 | Entrada de ChromeStatus.com | Especificación
Pseudoclase :open
de CSS
La pseudoclase :open
coincide con <dialog>
y <details>
cuando están en su estado abierto, y con <select>
y <input>
cuando están en modos que tienen un selector y este se muestra.
Error de seguimiento #324293874 | Entrada de ChromeStatus.com | Especificación
Consultas de contenedores de estado de desplazamiento de CSS
Usa consultas de contenedor para aplicar diseño a los elementos secundarios de los contenedores según su estado de desplazamiento.
El contenedor de consulta es un contenedor de desplazamiento o un elemento afectado por la posición de desplazamiento de un contenedor de desplazamiento. Se pueden consultar los siguientes estados:
stuck
: Un contenedor con posición fija se pega a uno de los bordes del cuadro de desplazamiento.snapped
: Un contenedor alineado con el ajuste del desplazamiento se ajusta horizontal o verticalmente.scrollable
: Indica si se puede desplazar un contenedor de desplazamiento en una dirección consultada.
Se agregó un nuevo tipo de contenedor: scroll-state
, que permite consultar contenedores.
Error de seguimiento #40268059 | Entrada de ChromeStatus.com | Especificación
CSS text-box
, text-box-trim
y text-box-edge
Para lograr un equilibrio óptimo del contenido de texto, las propiedades text-box-trim
y text-box-edge, junto con la propiedad de texto abreviado, permiten un control más preciso de la alineación vertical del texto.
La propiedad text-box-trim
especifica los lados que se recortarán, arriba o abajo, y la propiedad text-box-edge
especifica cómo se debe recortar el borde.
Estas propiedades te permiten controlar el espaciado vertical con precisión mediante las métricas de fuente.
Error de seguimiento #1411581 | Entrada de ChromeStatus.com | Especificación
API web
Animation.overallProgress
Proporciona a los desarrolladores una representación conveniente y coherente de qué tan avanzada está una animación en sus iteraciones, independientemente de la naturaleza de su cronograma. Sin la propiedad overallProgress
, debes calcular manualmente qué tan lejos avanzó una animación, teniendo en cuenta la cantidad de iteraciones de la animación y si el currentTime
de la animación es un porcentaje del tiempo total (como en el caso de las animaciones impulsadas por el desplazamiento) o una cantidad de tiempo absoluta (como en el caso de las animaciones impulsadas por el tiempo).
Error de seguimiento #40914396 | Entrada de ChromeStatus.com | Especificación
El método pause()
del objeto Atomics
Agrega el método pause()
al objeto de espacio de nombres Atomics
para indicarle a la CPU que el código actual está ejecutando un bloqueo de giro.
Entrada de ChromeStatus.com | Especificación
Informes de hash de CSP para secuencias de comandos
Las aplicaciones web complejas suelen necesitar hacer un seguimiento de los subrecursos que descargan por motivos de seguridad.
En particular, los próximos estándares y prácticas recomendadas de la industria (por ejemplo, PCI-DSS v4) requieren que las aplicaciones web mantengan un inventario de todas las secuencias de comandos que descargan y ejecutan.
Esta función se basa en CSP y la API de Reporting para informar las URLs y los hashes (para CORS o mismo origen) de todos los recursos de secuencia de comandos que carga el documento.
Error de seguimiento #377830102 | Entrada de ChromeStatus.com
Movimiento que conserva el estado del DOM
Agrega una primitiva DOM (Node.prototype.moveBefore
) que te permite mover elementos alrededor de un árbol DOM sin restablecer el estado del elemento.
Cuando se mueve en lugar de quitar y agregar, se conserva el siguiente estado:
- Quedan cargados
<iframe>
elementos. - El elemento activo permanece enfocado.
- Los diálogos emergentes, de pantalla completa y modales permanecen abiertos.
- Las transiciones y animaciones de CSS continúan.
Expone el atributo attributionsrc
en <area>
.
Alinea la exposición del atributo attributionsrc
en <area>
con el comportamiento de procesamiento existente del atributo, incluso cuando no estaba expuesto.
Además, tiene sentido admitir el atributo en <area>
, ya que ese elemento es una plataforma de navegación de primera clase, y Chrome ya lo admite en las otras plataformas de <a>
y window.open
.
Error de seguimiento #379275911 | Entrada de ChromeStatus.com | Especificación
La interfaz de FileSystemObserver
La interfaz FileSystemObserver
notifica a los sitios web los cambios en el sistema de archivos. Los sitios observan los cambios en los archivos y directorios a los que el usuario les otorgó permiso anteriormente, en su dispositivo local o en el sistema de archivos de Bucket (también conocido como sistema de archivos privados de Origin), y reciben notificaciones sobre información básica de los cambios, como el tipo de cambio.
Error de seguimiento #40105284 | Entrada de ChromeStatus.com
Varios mapas de importación
Actualmente, los mapas de importación se deben cargar antes que cualquier módulo de ES y solo puede haber un mapa de importación por documento. Eso los hace frágiles y, potencialmente, lentos de usar en situaciones de la vida real: cualquier módulo que se cargue antes de ellos rompe toda la app y, en las apps con muchos módulos, se convierten en un gran recurso de bloqueo, ya que primero se debe cargar todo el mapa de todos los módulos posibles.
Esta función permite varios mapas de importación por documento, ya que los combina de forma coherente y determinista.
Encabezados de acceso al almacenamiento
Ofrece una forma alternativa para que las incorporaciones autenticadas habiliten las cookies no particionadas. Estos encabezados indican si se incluyen (o pueden incluirse) cookies no particionadas en una solicitud de red determinada y permiten que los servidores activen los permisos de "acceso al almacenamiento" que ya se otorgaron. Proporcionar una forma alternativa de activar el permiso "storage-access" permite que los recursos que no son iframes lo usen y puede reducir la latencia de las incorporaciones autenticadas.
Error de seguimiento #329698698 | Entrada de ChromeStatus.com | Especificación
Se admite la creación de ClipboardItem
con Promise<DOMString>
.
ClipboardItem
, que es la entrada del método write()
del portapapeles asíncrono, ahora acepta valores de cadena además de objetos Blob en su constructor. ClipboardItemData
puede ser un Blob, una cadena o una promesa que se resuelve en un Blob o una cadena.
Error de seguimiento #40766145 | Entrada de ChromeStatus.com | Especificación
WebAssembly Memory64
La propuesta de memory64 agrega compatibilidad con memorias lineales de WebAssembly con un tamaño superior a 2^32 bits. No proporciona instrucciones nuevas, sino que extiende las existentes para permitir índices de 64 bits para memorias y tablas.
Entrada de ChromeStatus.com | Especificación
API de Web Authentication: Método getClientCapabilities()
de PublicKeyCredential
El método getClientCapabilities()
de PublicKeyCredential
te permite determinar qué funciones de WebAuthn son compatibles con el cliente del usuario. El método muestra una lista de las capacidades admitidas, lo que permite a los desarrolladores adaptar las experiencias de autenticación y los flujos de trabajo según la funcionalidad específica del cliente.
Error de seguimiento #360327828 | Entrada de ChromeStatus.com | Especificación
Algoritmo X25519 de la API de Web Cryptography
El algoritmo "X25519" proporciona herramientas para realizar el acuerdo de claves con la función X25519 especificada en [RFC7748]. El identificador del algoritmo "X25519" se puede usar en la interfaz de SubtleCrypto para acceder a las operaciones implementadas: generateKey, importKey, exportKey, deriveKey y deriveBits.
Error de seguimiento #378856322 | Entrada de ChromeStatus.com | Especificación
Rendimiento
Inmovilización en el modo de ahorro de energía
Cuando el Ahorro de energía está activo, Chrome inmoviliza un "grupo de contexto de navegación" que estuvo oculto y silenciado durante más de cinco minutos si algún subgrupo de marcos del mismo origen supera un umbral de uso de la CPU, a menos que cumpla con las siguientes condiciones:
- Proporciona funcionalidad de videoconferencia (detectada a través de la identificación de un micrófono, una cámara o una captura de pantalla, ventana o pestaña, o una RTCPeerConnection con un RTCDataChannel "abierto" o un MediaStreamTrack "en vivo").
- Controla un dispositivo externo (detectado con WebUSB, Web Bluetooth, WebHID o Web Serial).
- Contiene un bloqueo web o una conexión IndexedDB que bloquea una actualización de versión o una transacción en una conexión diferente.
- La inmovilización consiste en pausar la ejecución. Se define formalmente en la API de Page Lifecycle.
El umbral de uso de la CPU se calibrará para inmovilizar aproximadamente el 10% de las pestañas en segundo plano cuando el modo Ahorro de energía esté activo.
Error de seguimiento #325954772 | Entrada de ChromeStatus.com
Se expone un renderTime
de varios orígenes más detallado en el tiempo de los elementos y el LCP (independientemente de Timing-Allow-Origin
).
El tiempo de los elementos y las entradas de LCP tienen un atributo renderTime
, alineado con el primer fotograma en el que se pintó una imagen o un texto.
Actualmente, este atributo está protegido para las imágenes de origen cruzado, ya que requiere un encabezado Timing-Allow-Origin
en el recurso de imagen. Sin embargo, esa restricción es fácil de evitar (por ejemplo, mostrando una imagen del mismo origen y de origen cruzado en el mismo marco).
Como esto ha sido una fuente de confusión, planeamos quitar esta restricción y, en su lugar, aumentar en 4 ms todos los tiempos de renderización cuando el documento no esté aislado de varios orígenes. Esto parece ser lo suficientemente detallado como para evitar filtrar información útil sobre el tiempo de decodificación de imágenes de origen cruzado.
Error de seguimiento #373263977 | Entrada de ChromeStatus.com | Especificación
Revierte responseStart
y presenta firstResponseHeadersStart
Con los indicadores anticipados 103 habilitados, las respuestas tienen dos marcas de tiempo:
- Cuando llegan los indicadores anticipados (103)
- Cuando llegan los encabezados finales (p.ej., 200)
- Cuando Chrome 115 envió
firstInterimResponseStart
para permitir la medición de estas dos marcas de tiempo, también cambiamos el significado deresponseStart
(que usa el tiempo hasta el primer byte (TTFB)) para que signifique "los encabezados finales". Esto generó un problema de compatibilidad web con navegadores y herramientas que no realizaron un cambio similar para esta métrica de uso general.
Chrome 133 revierte este cambio de responseStart
para resolver este problema de compatibilidad y, en su lugar, presenta firstResponseHeadersStart
para permitir que los sitios midan el tiempo hasta los encabezados finales, a la vez que conservan la definición original de TTFB.
Error de seguimiento #40251053 | Entrada de ChromeStatus.com | Especificación
Renderización y gráficos
WebGPU: Formatos de vértices de 1 componente (y unorm8x4-bgra)
Se agregaron formatos de vértices adicionales que no estaban presentes en la versión inicial de WebGPU debido a la falta de compatibilidad o a versiones anteriores de macOS (que ya no son compatibles con ningún navegador). Los formatos de vértices de 1 componente permiten que las aplicaciones soliciten solo los datos necesarios, cuando antes tenían que solicitar al menos el doble para los tipos de datos de 8 y 16 bits. El formato unorm8x4-bgra facilita un poco la carga de colores de vértices codificados en BGRA y mantiene el mismo sombreador.
Error de seguimiento #376924407 | Entrada de ChromeStatus.com
Pruebas de origen
Cómo inhabilitar la inmovilización en el modo de ahorro de energía
Esta prueba sin solicitud de aceptación permite que los sitios inhabiliten el comportamiento de inmovilización en el modo de ahorro de energía que se incluye en Chrome 133.
Prueba de origen | Error de seguimiento #325954772 | Entrada de ChromeStatus.com | Especificación
Objetivo de referencia para ARIA entre raíces
El objetivo de referencia es una función para habilitar el uso de atributos IDREF, como for
y aria-labelledby
, para hacer referencia a elementos dentro del Shadow DOM de un componente y, al mismo tiempo, mantener el encapsulamiento de los detalles internos del Shadow DOM. El objetivo principal de esta función es permitir que ARIA funcione en todos los límites de la raíz de sombra.
Un componente puede especificar un elemento en su árbol de sombras para que actúe como su "objetivo de referencia". Cuando el componente host es el objetivo de un IDREF, como el atributo for
de una etiqueta, el objetivo de referencia se convierte en el objetivo efectivo de la etiqueta.
La raíz de sombra especifica el ID del elemento de destino dentro del shadow DOM. Esto se hace en JavaScript con el atributo referenceTarget
en el objeto ShadowRoot
o en el lenguaje de marcado HTML con el atributo shadowrootreferencetarget
en el elemento <template>
.
Prueba de origen | Entrada de ChromeStatus.com
Bajas y eliminaciones
Se da de baja el límite maxInterStageShaderComponents
de WebGPU
maxInterStageShaderComponents limit
dejó de estar disponible debido a una combinación de factores. Es la fecha de eliminación prevista en Chrome 135.
- Redundancia con
maxInterStageShaderVariables
: Este límite ya tiene un propósito similar, que es controlar la cantidad de datos que se pasan entre las etapas del sombreador. - Discrepancias menores: Si bien existen ligeras diferencias en la forma en que se calculan los dos límites, estas son menores y se pueden administrar de manera eficaz dentro del límite de
maxInterStageShaderVariables
. - Simplificación: Quitar
maxInterStageShaderComponents
optimiza la interfaz del sombreador y reduce la complejidad para los desarrolladores. En lugar de administrar dos límites separados con diferencias sutiles, pueden enfocarse en elmaxInterStageShaderVariables
más completo y con un nombre más adecuado.
Quita la regla de cinco minutos de <link rel=prefetch>
Anteriormente, cuando se precargó un recurso con <link rel=prefetch>
, Chrome ignoró su semántica de caché (es decir, max-age
y no-cache
) para el primer uso en un plazo de cinco minutos para evitar la actualización. Ahora, Chrome quita este caso especial y usa la semántica normal de la caché de HTTP.
Esto significa que los desarrolladores web deben incluir los encabezados de almacenamiento en caché adecuados (Cache-Control o Expires) para ver los beneficios de <link rel=prefetch>
.
Esto también afecta a los <link rel=prerender>
no estándar.
Error de seguimiento #40232065 | Entrada de ChromeStatus.com
Se quitó el inicio de la página de bienvenida de Chrome con las pestañas de la primera ejecución de las preferencias iniciales
Incluir chrome://welcome
en la propiedad first_run_tabs
del archivo initial_preferences
ya no tendrá efecto. Se quitó porque esa página es redundante con la experiencia de primera ejecución que se activa en plataformas de computadoras de escritorio.