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 de la lista en ChromeStatus.com. Chrome 135 está en versión beta desde el 5 de marzo de 2025. Puedes descargar la versión más reciente en Google.com para computadoras o en Google Play Store en Android.

CSS y IU

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

Posicionamiento de anclaje: Desplazamiento recordado

Agrega compatibilidad con el concepto de desplazamiento recordado offset. Cuando un elemento posicionado tiene un ancla predeterminada y está atado a esta ancla en un borde y contra el bloque contenedor original en el otro borde, se tendrá en cuenta el desplazamiento cuando se trate de dimensionar el 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 anclaje, 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

Hacer que un elemento sea inerte afecta si se puede enfocar, editar, seleccionar y 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 (incluidas las ejecuciones 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 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.

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 libres y 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 propiedades personalizadas.

El seudoelemento ::column

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

Seudoelementos ::scroll-button()

Permiten la creación de botones de desplazamiento interactivos como seudoelementos. Por ejemplo:

.scroller {
  overflow: auto;
}

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

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

Estos deben 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 diseñarse con :disabled); de lo contrario, se habilitan (y diseñan con :enabled). El selector te permite definir botones en cuatro direcciones lógicas: block-start, block-end, inline-start, inline-end; así como cuatro direcciones físicas: up, down, left, right.

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

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

Diseño de seudoelementos anidados

Permite el diseño de seudoelementos que están anidados dentro de otros seudoelementos. Hasta ahora, se define la compatibilidad para: ::before::marker y ::after::marker, y ::column::scroll-marker se admitirá en el futuro.

Para eliminar las filtraciones del historial de navegación del usuario, se les aplica el estilo :visited a los elementos de ancla solo si anteriormente se hizo clic en ellos desde este sitio de nivel superior y origen de marco. Dado que solo se les aplicará el estilo a los vínculos en los que anteriormente se hizo clic en este sitio y marco, quedarán obsoletos numerosos ataques de canal lateral que se desarrollaron para obtener información de estilo de los vínculos :visited, ya que ya no les proporcionarán a los sitios información nueva sobre los usuarios.

Hay una excepción para los vínculos propios, 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 sitio de nivel superior y origen de marco exactos. Esta exención solo está habilitada en marcos o submarcos de nivel superior que tienen el mismo origen que el marco de nivel superior. Los beneficios de privacidad se siguen logrando porque los sitios ya saben qué 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.

Notación funcional del progreso de interpolación: Función CSS *progress()

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 las inserciones dinámicas, las inserciones máximas no cambian y representan la inserción máxima posible del área segura.

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

API web

Agrega compatibilidad con MediaStreamTrack a la API de Web Speech

Agrega compatibilidad con MediaStreamTrack a la API de Web Speech. La API de Web Speech es una API de estándares web que permite a los desarrolladores incorporar reconocimiento y 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.

CSP require-sri-for para secuencias de comandos

La directiva require-sri-for te permite afirmar que cada recurso de un tipo determinado debe verificarse en cuanto a su integridad. Si se intenta cargar un recurso de ese tipo sin metadatos de integridad, el intento fallará y se activará un informe de incumplimiento de CSP. Este intent cubre el "script" valor 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 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 superior.

Envío de eventos de clic al puntero capturado

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

Float16Array

Agrega el array con tipo 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é HTTP

Se actualizó el esquema de claves de caché HTTP de Chrome para incluir un booleano is-cross-site-main-frame-navigation para mitigar los ataques de filtración entre sitios que involucran la navegación de nivel superior. En específico, esto evitará los 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 carga la página para inferir información sensible a través del tiempo 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 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.

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, al mismo tiempo que reduces los errores y simplificas la cantidad de JavaScript necesaria para la interactividad. Los botones con commandfor y command (cuando se hace clic en ellos, se tocan o se activan con una pulsación de tecla) envían un CommandEvent en el elemento al que hace referencia commandfor, con algunos comportamientos predeterminados, como abrir diálogos y ventanas emergentes.

Agrega compatibilidad con <link rel="facilitated-payment" href="..."> como una sugerencia de que el navegador debe notificar a los clientes de pago 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 iniciador.

Cambio de nombre del motivo de la API de NotRestoredReasons

La API de NotRestoredReasons está cambiando algunos de los textos de motivos para alinearse con los nombres estandarizados. Los desarrolladores que supervisan estos motivos pueden notar un cambio en los textos de motivos.

API de Web Speech integrado en el dispositivo

El cliente de service worker ignora los cambios de URL history.pushState

Modifica la propiedad Client.url del service worker para ignorar los cambios de URL del documento con history.pushState() y otras APIs de historial similares. La propiedad Client.url está diseñada para ser la URL de creación del documento HTML que ignora esos cambios.

Admite atributos rel y relList para SVGAElement

La interfaz SVGAElement en SVG 2.0 permite la manipulación de <a> elementos 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 las tecnologías web.

Marcas de tiempo para fotogramas codificados 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 transmitidos 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ó originalmente un fotograma.
  • Marca de tiempo de recepción: Es la marca de tiempo en la que se recibió un fotograma.

Actualiza ProgressEvent para usar el tipo double para "loaded" y "total"

ProgressEvent tiene 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 da al desarrollador más control sobre el valor. Por ejemplo, los desarrolladores ahora pueden crear un ProgressEvent con el atributo total de 1 y el atributo loaded que aumenta de 0 a 1 gradualmente. Esto se alinea con el comportamiento predeterminado del <progress> HTML elemento 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 el beaconing más confiable al final del ciclo de vida de una página. Una vez que se llama en un documento, el navegador pone en cola una solicitud diferida en el estado PENDING y se invocará con 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 vaciará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, se desconoce la hora exacta de envío.

Nuevas pruebas de origen

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

Invocadores de interés

Esta función agrega un atributo interesttarget a <button> y <a> elementos. 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 de destino. Las acciones pueden incluir elementos como mostrar una ventana emergente. El agente de usuario se encargará de detectar cuándo el usuario "muestra interés" en el elemento, usando métodos como colocar el cursor sobre el elemento con un mouse, presionar teclas de acceso rápido 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 destino, que tiene acciones predeterminadas en el caso de las ventanas emergentes: mostrar y ocultar la ventana emergente.

Integridad basada en firmas

Esta función proporciona 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 requerir que el agente de usuario verifique la firma con una clave pública específica. Esto ofrece una adición útil a las verificaciones basadas en URL que ofrece la Política de seguridad del contenido, por un lado, y las verificaciones basadas en contenido de la Integridad de subrecursos, por el otro.

Bajas y retiros

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

En esta versión de Chrome, se 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.

En esta versión de Chrome, se quitan tres funciones.

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

En septiembre de 2019, el método navigator.xr.supportsSession reemplazó a navigator.xr.isSessionSupported 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 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.

Se quitó 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, olvidamos quitar la propiedad canTransition. En su lugar, la dejamos como alias de canIntercept. En Chrome 135, corregimos ese error y quitamos canTransition. Cualquier uso de canTransition se puede reemplazar por canIntercept, sin cambios en el comportamiento.

Se quitó el límite de WebGPU maxInterStageShaderComponents

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

  • Redundancia con maxInterStageShaderVariables: Este límite ya cumple un propósito similar, ya que controla la cantidad de datos que se pasan entre las etapas del sombreador.
  • Discrepancias menores: Si bien existen pequeñas diferencias en la forma en que se calculan los dos límites, estas diferencias son menores y se pueden administrar de manera eficaz dentro del 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 simultáneamente, pero con diferencias sutiles), pueden enfocarse en el maxInterStageShaderVariables más adecuado y completo.