Chrome 135

Fecha de lanzamiento estable: 1 de abril de 2025

A menos que se indique lo contrario, los siguientes cambios se aplican a la versión del canal estable de Chrome 135 para Android, ChromeOS, Linux, macOS y Windows.

HTML y DOM

Comandos de invocador: los atributos command y commandfor

Los atributos command y commandfor en los elementos <button> te permiten asignar comportamiento a los botones de una manera más accesible y declarativa.

Error de seguimiento #1490919 | Entrada de ChromeStatus.com | Especificación

Se agregó compatibilidad con <link rel="facilitated-payment" href="..."> como una sugerencia de que el navegador debe notificar a los clientes de pagos registrados sobre un pago push pendiente.

Error de seguimiento #1477049 | Entrada de ChromeStatus.com

CSS

Pseudoelemento ::column para carruseles

Un pseudoelemento ::column, que permite aplicar un conjunto limitado de diseños a los fragmentos generados. Específicamente, esto se limitaría a los estilos que no afectan el diseño y, por lo tanto, se pueden aplicar después del diseño.

Entrada de ChromeStatus.com

Pseudoelementos ::scroll-button()

Permite la creación de botones de desplazamiento interactivos como pseudoelementos, por ejemplo:

.scroller {
  overflow: auto;
}

.scroller::scroll-button(inline-start) {
  content: "<";
}

.scroller::scroll-button(inline-end) {
  content: ">";
}

Deben poder enfocarse y comportarse como un botón (incluidos sus estilos de UA). Cuando se activa, se debe realizar un desplazamiento en la dirección por una cantidad determinada. Cuando no es posible desplazarse en esa dirección, deben estar inhabilitados (y aplicarles diseño con :disabled). De lo contrario, están habilitados (y se les aplica diseño con :enabled).

El selector te permite definir botones en cuatro direcciones lógicas: block-start, block-end, inline-start y inline-end, así como en cuatro direcciones físicas: up, down, left y right.

Error de seguimiento #370067113 | Entrada de ChromeStatus.com | Especificación

::scroll-marker y ::scroll-marker-group

Agrega los pseudoelementos ::scroll-marker y ::scroll-marker-group para contenedores de desplazamiento. Te permiten crear un conjunto de marcadores enfocables para todos los elementos asociados dentro del contenedor de desplazamiento.

Error de seguimiento #332396355 | Entrada de ChromeStatus.com | Especificación

Inercia de CSS: la propiedad interactivity

La propiedad interactivity especifica si un elemento y sus descendientes de árbol plano (incluidos los tramos de texto) son inertes o no.

Si haces que un elemento sea inerte, se verá afectado si se puede enfocar, editar, seleccionar y buscar con la función Buscar en la página. También afecta si es visible en el árbol de accesibilidad.

Entrada de ChromeStatus.com | Especificación

Desbordamiento lógico de CSS

Las propiedades CSS overflow-inline y overflow-block permiten configurar el desbordamiento en la dirección intercalada y de bloque en relación con el modo de escritura. En un modo de escritura horizontal, overflow-inline se asigna a overflow-x, mientras que en un modo de escritura vertical, se asigna a overflow-y.

Error de seguimiento #41489999 | Entrada de ChromeStatus.com | Especificación

Compensación de desplazamiento recordada del posicionamiento de anclaje de CSS

Se agregó compatibilidad con el concepto de desplazamiento recordado.

Cuando un elemento posicionado tiene un ancla predeterminada y está conectado a esta ancla en un borde y contra el bloque contenedor original en el otro borde, se tendrá en cuenta el desplazamiento cuando se defina el tamaño del elemento. De esta manera, puedes usar todo el espacio visible (con position-area) para el elemento anclado cuando se desplaza el documento en un desplazamiento determinado.

Para evitar el diseño (cambiar el tamaño del elemento) cada vez que se desplaza el documento (que es un comportamiento no deseado y también es malo para el rendimiento), se usará un llamado "desplazamiento recordado", en lugar de usar siempre el desplazamiento actual. El desplazamiento recordado se actualiza en un llamado "punto de recálculo de la ancla", que puede ser uno de los siguientes:

  • Cuando se muestra inicialmente el elemento posicionado.
  • Cuando se elige una opción de posición diferente (position-try-fallbacks).

Error de seguimiento #373874012 | Entrada de ChromeStatus.com | Especificación

Función shape() de CSS

La función shape() permite formas de formato libre responsivas en clip-path.

Puedes definir una serie de verbos, aproximadamente equivalentes a los verbos de path(), pero en los que los verbos aceptan unidades responsivas (como % o vw), así como cualquier valor de CSS, como las propiedades personalizadas.

Error de seguimiento #40829059 | Entrada de ChromeStatus.com | Especificación

Variables safe-area-max-inset-*

Esta función agrega variables max-area-safe-inset-* que no cambian y representan el inserto de área segura máximo posible.

El caso de uso que resuelve esto es evitar la necesidad de volver a diseñar la página en los casos en que el pie de página (por ejemplo) puede simplemente deslizarse a medida que crece el valor de desplazamiento del área segura, en lugar de cambiar de tamaño.

Error de seguimiento #391621941 | Entrada de ChromeStatus.com | Especificación

Aplicación de diseño a seudoelementos anidados

Permite aplicar diseño a los elementos pseudo que están anidados dentro de otros elementos pseudo. Hasta el momento, la compatibilidad se definió para lo siguiente:

  • ::before::marker
  • ::after::marker

Con ::column::scroll-marker, se admitirá en el futuro.

Error de seguimiento #373478544 | Entrada de ChromeStatus.com | Especificación

Audio y video

Se agregó compatibilidad con MediaStreamTrack a la API de Web Speech

Se agregó compatibilidad con MediaStreamTrack a la API de Web Speech.

La API de Web Speech es una API estándar de la Web que permite a los desarrolladores incorporar el reconocimiento y la síntesis de voz en sus páginas web. Actualmente, la API de Web Speech usa el micrófono predeterminado del usuario como entrada de audio. La compatibilidad con MediaStreamTrack permite que los sitios web usen la API de Web Speech para subtitular otras fuentes de audio, incluidas las pistas de audio remotas.

Entrada de ChromeStatus.com | Especificación

API web

Crea un cliente de service worker y hereda el controlador de service worker para el iframe de srcdoc

Actualmente, los documentos de contexto de srcdoc no son clientes de service worker y no están cubiertos por el service worker de su página superior. Esto genera algunas discrepancias (por ejemplo, el Tiempo de recursos informa las URLs que cargan estos documentos, pero el service worker no las intercepta). El objetivo de este cambio es corregir las discrepancias creando clientes de service worker para los iframes de srcdoc y hacer que hereden el controlador de service worker superior.

Error de seguimiento #41411856 | Entrada de ChromeStatus.com | Especificación

Reflexión de elementos

Esta función permite que los atributos de relación de ARIA se reflejen en IDL como referencias de elementos en lugar de cadenas DOM.

Esto implementa los atributos IDL en la interfaz ARIAMixin con un tipo de elemento o FrozenArray<Element>, a excepción de ariaOwnsElements.

Error de seguimiento #981423 | Entrada de ChromeStatus.com | Especificación

Marcos delimitados: Compatibilidad automática con datos de píxeles contadores de origen cruzado

Si se cargan a través de una API como Protected Audience o Shared Storage, los marcos delimitados o los iframes de URN pueden enviar píxeles contadores de informes automáticamente si se produce algún evento (actualmente, solo se admiten píxeles contadores de navegación de nivel superior). Esta función se actualizó anteriormente para permitir que los documentos de origen cruzado cargados en el árbol del marco de límite raíz enviaran píxeles contadores automáticos si se habilitaba esta opción, pero aún se conservaba la restricción de que solo los marcos que tienen el mismo origen que el que carga la API podían establecer los datos que se enviarían como parte del píxel contador. Esta función expande esa funcionalidad para permitir que el documento de origen cruzado establezca los datos que se usarán en el píxel contador automático.

Para permitir esto y, al mismo tiempo, preservar la privacidad, tanto el documento raíz del marco protegido como el documento del submarco de origen cruzado deben habilitarse de forma explícita. Esta es la misma forma de habilitación que otras funciones de FFAR entre orígenes. Específicamente, la trama raíz debe habilitarse con el encabezado Allow-Fenced-Frame-Automatic-Beacons, y el submarco de origen cruzado que establece los datos debe habilitarse con el parámetro crossOriginExposed en la llamada a setReportEvent().

Entrada de ChromeStatus.com | Especificación

Float16Array

Agrega el array escrito Float16Array. Los valores numéricos se redondean a IEEE fp16 cuando se escriben en instancias de Float16Array.

Error de seguimiento #42203953 | Entrada de ChromeStatus.com | Especificación

Prevención de seguimiento de HSTS

Mitiga el seguimiento de usuarios por parte de terceros que usan la caché de HSTS.

Esta función solo permite actualizaciones de HSTS para navegaciones de nivel superior y bloquea las actualizaciones de HSTS para solicitudes de subrecursos. De esta manera, los sitios de terceros no pueden usar la caché de HSTS para realizar un seguimiento de los usuarios en la Web.

Error de seguimiento #40725781 | Entrada de ChromeStatus.com

Cuando un elemento inicia una navegación (por ejemplo, con un clic en un vínculo o el envío de un formulario), la propiedad sourceElement en NavigateEvent será el elemento inicializador.

Error de seguimiento #40281924 | Entrada de ChromeStatus.com | Especificación

Cambio de nombre del motivo de la API de NotRestoredReasons

La API de NotRestoredReasons cambiará algunos de los textos de los motivos para que se alineen con los nombres estandarizados. Si supervisas estos motivos, es posible que notes un cambio en los textos de los motivos.

Error de seguimiento #331754704 | Entrada de ChromeStatus.com | Especificación

API de Observable

Los observables son un paradigma popular de programación reactiva para controlar un flujo asíncrono de eventos basados en notificaciones push. Se pueden considerar promesas, pero para varios eventos, y su objetivo es hacer lo que las promesas hicieron para las devoluciones de llamada y el anidamiento. Es decir, permiten un manejo ergonómico de eventos, ya que proporcionan un objeto Observable que representa el flujo asíncrono de eventos.

Puedes suscribirte al objeto para recibir eventos a medida que llegan y llamar a cualquiera de sus operadores o combinadores para describir de forma declarativa el flujo de transformaciones por el que pasan los eventos. Esto contrasta con la versión imperativa, que a menudo requiere anidamientos complicados con elementos como addEventListener().

Error de seguimiento #1485981 | Entrada de ChromeStatus.com | Especificación

Se quitó la restricción de setInterval(...) a >= 1 ms.

Antes de Chrome 135, setInterval con un valor inferior a 1 se limitaba a 1. A partir de Chrome 135, se quitará esta restricción.

  • Antes: setInterval(..., 0) = demora de 1ms.
  • Después: setInterval(..., 0) = demora de 0ms.

Error de seguimiento #41380458 | Entrada de ChromeStatus.com

La URL del cliente del servicio trabajador ignora los cambios de history.pushState().

Modifica la propiedad Client.url del trabajador del servicio para ignorar los cambios en la URL del documento con history.pushState() y otras APIs de historial similares. La propiedad Client.url debe ser la URL de creación del documento HTML que ignora esos cambios.

Error de seguimiento #41337436 | Entrada de ChromeStatus.com | Especificación

Se admiten los atributos rel y relList para SVGAElement.

La interfaz SVGAElement en SVG 2.0 permite la manipulación de elementos <a> similares a los elementos de anclaje HTML. La compatibilidad con los atributos rel y relList mejora la seguridad y la privacidad para los desarrolladores.

Esta alineación con los elementos de anclaje HTML garantiza la coherencia y la facilidad de uso en todas las tecnologías web.

Error de seguimiento #40589293 | Entrada de ChromeStatus.com | Especificación

Marcas de tiempo para tramas codificadas de RTC

Esta función consiste en exponer a la Web algunas marcas de tiempo que están presentes en los fotogramas codificados de WebRTC que se transmiten con RTCPeerConnection. Las marcas de tiempo en cuestión son las siguientes:

  • Marca de tiempo de captura: Es la marca de tiempo en la que se capturó un fotograma originalmente.
  • Marca de tiempo de recepción: Es la marca de tiempo en la que se recibió un fotograma.

Error de seguimiento #391114797 | Entrada de ChromeStatus.com | Especificación

Actualiza los encabezados, el cuerpo y la política de referer de la solicitud HTTP en el redireccionamiento de CORS

Para actualizar la solicitud HTTP en el redireccionamiento de CORS, quita los encabezados y el cuerpo de la solicitud si cambió el método y actualiza la política de referencia. Estas actualizaciones de solicitudes se alinean con las especificaciones de recuperación y coinciden con el comportamiento que implementan Firefox y Safari para mejorar la compatibilidad.

Error de seguimiento #40686262 | Entrada de ChromeStatus.com | Especificación

API de fetchLater

fetchLater() es una API de JavaScript para solicitar una recuperación diferida. Una vez que se llama a una solicitud diferida en un documento, el navegador la pone en cola en el estado PENDING y la invocará cuando se cumpla la primera de las siguientes condiciones:

  • Se destruye el documento.
  • Después de un tiempo especificado por el usuario Por motivos de privacidad, todas las solicitudes pendientes se borrarán cuando el documento ingrese a bfcache, sin importar cuánto tiempo quede.
  • El navegador decide que es hora de enviarlo.

La API muestra un FetchLaterResult que contiene un campo booleano "activated" que se puede actualizar para indicar si se envió la solicitud diferida o no. Si el envío se realiza correctamente, el navegador ignorará toda la respuesta, incluido el cuerpo y los encabezados. No se debe procesar ni actualizar nada, ya que es posible que la página ya no exista.

Ten en cuenta que, desde el punto de vista del usuario de la API, se desconoce la hora de envío exacta.

Error de seguimiento #1465781 | Entrada de ChromeStatus.com | Especificación

API de highlightsFromPoint

La API de highlightsFromPoint permite a los desarrolladores interactuar con destacados personalizados mediante la detección de los que existen en un punto específico dentro de un documento. Esta interactividad es valiosa para funciones web complejas en las que varios elementos destacados pueden superponerse o existir dentro del DOM sombreado. Debido a que proporciona una detección precisa de puntos destacados basados en puntos, la API permite a los desarrolladores administrar interacciones dinámicas con puntos destacados personalizados de manera más eficaz, como responder a los clics del usuario o los eventos de desplazamiento del mouse sobre regiones destacadas para activar información sobre herramientas personalizadas, menús contextuales y otras funciones interactivas.

Error de seguimiento #365046212 | Entrada de ChromeStatus.com | Especificación

Pruebas de origen

Credenciales de sesión vinculada al dispositivo

Es una forma para que los sitios web vinculen de forma segura una sesión a un solo dispositivo.

Permitirá que los servidores tengan una sesión vinculada de forma segura a un dispositivo. El navegador renovará la sesión periódicamente según lo solicite el servidor, con un comprobante de posesión de una clave privada.

Prueba de origen | Entrada de ChromeStatus.com | Especificación

Invocadores de intereses

Esta función agrega un atributo interesttarget a los elementos <button> y <a>. El atributo interesttarget agrega comportamientos de "interés" al elemento, de modo que, cuando el usuario "muestra interés" en el elemento, se activan acciones en el elemento objetivo. Las acciones pueden incluir acciones como mostrar un popover. El usuario-agente se encargará de detectar cuando el usuario "muestra interés" en el elemento, por ejemplo, cuando coloca el cursor sobre él con el mouse, presiona teclas de acceso rápido especiales en el teclado o mantiene presionado el elemento en pantallas táctiles. Cuando se muestre o se pierda el interés, se activará un InterestEvent en el objetivo, que tiene acciones predeterminadas en el caso de los pop-overs: mostrar y ocultar el pop-over.

Prueba de origen | Error de seguimiento #326681249 | Entrada de ChromeStatus.com | Especificación

Integridad basada en firmas

Esta función les brinda a los desarrolladores web un mecanismo para verificar la procedencia de los recursos de los que dependen, lo que crea una base técnica para confiar en las dependencias de un sitio. En resumen, los servidores pueden firmar respuestas con un par de claves Ed25519, y los desarrolladores web pueden exigir que el usuario-agente verifique la firma con una clave pública específica. Esto ofrece una adición útil a las verificaciones basadas en URLs que ofrece la Política de seguridad del contenido, por un lado, y las verificaciones basadas en el contenido de la Integridad de subrecursos, por otro.

Prueba de origen | Error de seguimiento #375224898 | Entrada de ChromeStatus.com | Especificación

Reglas de especulación: campo target_hint

Esto extiende la sintaxis de las reglas de especulación para permitir que los desarrolladores especifiquen el campo target_hint.

Este campo proporciona una sugerencia para indicar un destino navegable en el que se activará una página renderizada previamente. Por ejemplo, cuando se especifica _blank como una sugerencia, se puede activar una página renderizada previamente para una página navegable abierta por window.open(). El campo no tiene efecto en la precarga.

La especificación permite que este campo acepte cualquier cadena válida como nombre de destino navegable o palabra clave como valor, pero este lanzamiento solo admite una de las cadenas "_self" o "_blank". Si no se especifica la sugerencia, se trata como si se especificara "_self".

Prueba de origen | Error de seguimiento #40234240 | Entrada de ChromeStatus.com | Especificación

Bajas y eliminaciones

Se quitó el método navigator.xr.supportsSession obsoleto

En septiembre de 2019, el método navigator.xr.isSessionSupported reemplazó a navigator.xr.supportsSession en la especificación de WebXR después de recibir comentarios sobre la forma de la API de la TAG. Desde entonces, se marcó como obsoleto en Chromium, lo que genera una advertencia de la consola que redirecciona a los desarrolladores a la API actualizada.

El uso de la llamada es muy bajo, y se confirmó que todos los frameworks principales que se usan para compilar contenido de WebXR se actualizaron para usar la llamada más reciente.

Entrada de ChromeStatus.com | Especificación

Se quitó el límite de WebGPU maxInterStageShaderComponents.

Se quitará el límite de maxInterStageShaderComponents debido a una combinación de factores:

  • 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 hay 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 (que se aplican de forma simultánea, pero con diferencias sutiles), pueden enfocarse en el maxInterStageShaderVariables más apropiado y completo.

Error de seguimiento #364338810 | Entrada de ChromeStatus.com | Especificación