Versión beta de Chrome 135

Fecha de publicación: 5 de marzo 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 en la lista de ChromeStatus.com. Chrome 135 es una versión beta a partir del 5 de marzo de 2025. Puedes descargar la versión más reciente en Google.com para computadoras de escritorio o en Google Play Store para Android.

CSS y IU

Esta versión agrega trece funciones nuevas de CSS y la IU.

Desplazamiento recordado del posicionamiento de ancla

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. Esto significa que 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, el navegador usa el desplazamiento recordado, en lugar de usar siempre el desplazamiento actual. El desplazamiento recordado se actualiza en un punto de recálculo de la ancla, que es la posición en la que se muestra inicialmente el elemento posicionado o, cuando se elige una opción de posición diferente (position-try-fallbacks).

Inercia de CSS

Si haces que un elemento sea inerte, se verá afectado si se puede enfocar, editar, seleccionar y si se puede buscar con la función Buscar en la página. También afecta si es visible en el árbol de accesibilidad. La propiedad interactivity especifica si un elemento y sus descendientes de árbol plano (incluidos los tramos de texto) son inertes o no. La propiedad interactivity acepta uno de los dos valores: auto o inert.

Propiedades de desbordamiento lógico

Las propiedades CSS overflow-inline y overflow-block te permiten establecer el desbordamiento en la dirección intercalada y de bloqueo 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.

Las funciones relacionadas con el signo ​abs() y sign() ​calculan varias funciones relacionadas con el signo de su argumento.

La propiedad dynamic-range-limit

Permite que una página limite el brillo máximo del contenido HDR.

La función shape()

La función shape() permite formas de formato libre responsivas en la propiedad clip-path. Te permite definir una serie de comandos, equivalentes a los comandos de path(). Sin embargo, los comandos aceptan unidades responsivas (por ejemplo, % o vw), así como cualquier valor de CSS, como las propiedades personalizadas.

El seudoelemento ::column

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

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 inhabilitarse (y aplicarse un diseño con :disabled). De lo contrario, se habilitan (y se aplica un 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 cuatro direcciones físicas: up, down, left y right.

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

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

Aplicación de diseño a seudoelementos anidados

Habilita el diseño de pseudoelementos anidados dentro de otros pseudoelementos. Hasta el momento, la compatibilidad se define para ::before::marker y ::after::marker, y se admitirá ::column::scroll-marker en el futuro.

Para eliminar las filtraciones del historial de navegación del usuario, los elementos de anclaje se aplican el diseño :visited solo si se hizo clic en ellos desde este sitio y este origen de marco de nivel superior. Dado que solo se aplica diseño a los vínculos en los que se hizo clic en este sitio y en el marco anterior, los muchos ataques de canal lateral que se desarrollaron para obtener información de diseño de vínculos :visited ahora son obsoletos, ya que ya no proporcionan información nueva sobre los usuarios a los sitios.

Hay una excepción para los vínculos directos, en los que los vínculos a las páginas propias de un sitio pueden tener el estilo :visited, incluso si no se hizo clic en ellos en este origen de sitio y marco de nivel superior exacto. Esta exención solo está habilitada en los marcos o submarcos de nivel superior que tienen el mismo origen que el marco de nivel superior. Los beneficios de privacidad se siguen obteniendo porque los sitios ya saben cuál de sus subpáginas visitó un usuario, por lo que no se expone información nueva. Esta fue una excepción solicitada por la comunidad que mejora la experiencia del usuario.

Notaciones funcionales del progreso de la interpolación: Funciones *progress() de CSS

Las notaciones funcionales progress(), media-progress() y container-progress() representan la distancia proporcional de un valor determinado (el valor de progreso) de un valor (el valor de inicio del progreso) a otro valor (el valor de finalización del progreso). Permiten dibujar una proporción de progreso a partir de funciones matemáticas, funciones de contenido multimedia y funciones de contenedor, respectivamente.

Variables safe-area-max-inset-*

Además de las variables de entorno safe-area-inset, Chrome ahora también admite variantes max-area-safe-inset-* de estas variables. A diferencia de los márgenes dinámicos, los márgenes máximos no cambian y representan el margen de área segura máximo posible.

Estos valores son necesarios cuando se crean experiencias web de borde a borde de alto rendimiento.

API web

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.

Partición de URLs de BLOB: recuperación y navegación

Como continuación de Storage Partitioning, esta función implementa la partición del acceso a la URL de BLOB por clave de almacenamiento (sitio de nivel superior, origen de marco y el booleano has-cross-site-ancestor), a excepción de las navegaciones de nivel superior que permanecerán particionadas solo por el origen del marco.

require-sri-for del CSP para secuencias de comandos

La directiva require-sri-for te permite afirmar que cada recurso de un tipo determinado debe someterse a una verificación de integridad. Si se intenta cargar un recurso de ese tipo sin metadatos de integridad, el intento fallará y se activará un informe de incumplimiento del CSP. Este intent abarca el valor "script" de esta directiva.

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 es corregir las discrepancias creando clientes de service worker para los iframes de srcdoc y hacer que hereden el controlador de service worker de su elemento superior.

Envía eventos de clic al puntero capturado

Si se captura un puntero mientras se envía el evento pointerup, el evento click se enviará al destino capturado en lugar del ancestro común más cercano de los eventos pointerdown y pointerup según la especificación del evento de la IU. Para los punteros no capturados, el destino click no cambia.

Float16Array

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

Incorporación del iniciador de navegación en la clave de partición de caché de HTTP

El esquema de claves de caché HTTP de Chrome se actualizó para incluir un valor booleano is-cross-site-main-frame-navigation que mitiga los ataques de filtración entre sitios que involucran la navegación de nivel superior. Específicamente, esto evitará ataques entre sitios en los que un atacante puede iniciar una navegación de nivel superior a una página determinada y, luego, navegar a un recurso que se sabe que la página carga para inferir información sensible a través de los tiempos de carga. Este cambio también mejora la privacidad, ya que evita que un sitio malicioso use navegaciones para inferir si un usuario visitó un sitio determinado anteriormente.

Prevención de seguimiento de HSTS

Mitiga el seguimiento de usuarios por parte de terceros a través de la caché de HSTS.

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

Comandos del llamador: 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, a la vez que se reducen los errores y se simplifica la cantidad de JavaScript necesaria para la interactividad. Los botones con atributos commandfor y command, cuando se haga clic en ellos, se toquen o se activen con una pulsación de tecla, enviarán un CommandEvent al elemento al que hace referencia commandfor, con algunos comportamientos predeterminados, como abrir diálogos y ventanas emergentes.

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.

La propiedad sourceElement de NavigateEvent

Cuando un elemento inicia una navegación (es decir, un clic en un vínculo o el envío de un formulario), la propiedad sourceElement en NavigateEvent mostrará el elemento que inició la navegación.

Cambio de nombre del motivo de la API de NotRestoredReasons

La API de NotRestoredReasons cambia algunos de los textos de los motivos para alinearse con los nombres estandarizados. Es posible que los desarrolladores que supervisen estos motivos noten un cambio en los textos de los motivos.

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 se aseguren de que ni el audio ni la voz transcrita se envíen a un servicio de terceros para su procesamiento. Los sitios web pueden consultar la disponibilidad del reconocimiento de voz integrado en el dispositivo para idiomas específicos, solicitar a los usuarios que instalen los recursos necesarios para el reconocimiento de voz integrado en el dispositivo y elegir entre el reconocimiento de voz integrado en el dispositivo o basado en la nube según sea necesario.

La URL del cliente del service worker 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 se diseñó para ser la URL de creación del documento HTML que ignora esos cambios.

Compatibilidad con 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 ancla HTML garantiza la coherencia y la facilidad de uso en todas las tecnologías web.

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 a través de 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.

Actualiza ProgressEvent para usar el tipo doble para “cargado” y “total”.

ProgressEvent tiene los atributos loaded y total que indican el progreso, y su tipo ahora es unsigned long long. Con esta función, el tipo de estos dos atributos cambia a double, lo que le brinda al desarrollador más control sobre el valor. Por ejemplo, los desarrolladores ahora pueden crear un ProgressEvent con el total de 1 y el loaded que aumenta de 0 a 1 gradualmente. Esto se alinea con el comportamiento predeterminado del elemento HTML <progress> si se omite el atributo max.

La API de fetchLater

La API de fetchLater() es una API de JavaScript para solicitar una recuperación diferida, que es especialmente útil para generar píxeles contadores más confiables al final del ciclo de vida de una página. Una vez que se llama a una solicitud diferida en un documento, el navegador la pone en cola en el estado PENDIENTE y la invocará 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ó o no la solicitud diferida. Si el envío se realiza correctamente, el navegador ignorará toda la respuesta, incluido el cuerpo y los encabezados.

Ten en cuenta que, desde el punto de vista del usuario de la API, el tiempo de envío exacto es desconocido.

Nuevas pruebas de origen

En Chrome 135, puedes habilitar las siguientes pruebas de origen nuevas.

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 pop-up. El usuario-agente se encargará de detectar cuándo el usuario "muestra interés" en el elemento, con métodos como colocar el cursor sobre el elemento con el mouse, presionar teclas de acceso especiales en el teclado o mantener presionado el elemento en pantallas táctiles. Cuando se muestra o se pierde el interés, se activa un InterestEvent en el objetivo, que tiene acciones predeterminadas en el caso de los pop-overs: mostrar y ocultar el pop-over.

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 la confianza 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.

Bajas y eliminaciones

Esta versión de Chrome presenta las bajas y las eliminaciones que se indican a continuación. Visita ChromeStatus.com para ver las listas de bajas planificadas, las bajas actuales y las eliminaciones anteriores.

Esta versión de Chrome da de baja una función.

Los métodos get de Intl Locale Info dejarán de estar disponibles

La API de Intl Locale Info es una propuesta de TC39 de ECMAScript de etapa 3 para mejorar el objeto Intl.Locale exponiendo información de configuración regional, como los datos de la semana (primer día de una semana, día de inicio del fin de semana, día de finalización del fin de semana y día mínimo de la primera semana) y el ciclo de horas de dirección de texto que se usa en la configuración regional. Chrome implementó una implementación en Chrome 99, pero la propuesta cambió para trasladar varios métodos get a funciones. Debemos quitar los métodos get obsoletos y reiniciar las funciones con nombres modificados.

Esta versión de Chrome quita tres funciones.

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 TAG. Desde entonces, se marcó como obsoleta en Chrome, 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.

Quita la propiedad canTransition de NavigateEvent

En Chrome 108, el método transitionWhile() y la propiedad canTransition de NavigateEvent se reemplazaron por el nuevo método intercept() y la propiedad canIntercept. En ese momento, se quitó el método transitionWhile(). Sin embargo, nos olvidamos de quitar la propiedad canTransition: en su lugar, la dejamos como un alias para canIntercept. En Chrome 135, corregiremos esto y quitaremos canTransition. Cualquier uso de canTransition se puede reemplazar por canIntercept, sin cambios en el comportamiento.

Se quitó el límite maxInterStageShaderComponents de WebGPU.

Se quitará el límite de maxInterStageShaderComponents debido a una combinación de los siguientes 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 existen ligeras diferencias en la forma en que se calculan los dos límites, estas diferencias son menores y se pueden administrar de manera eficaz dentro de maxInterStageShaderVariables limit.
  • 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.