Chrome 136

Fecha de lanzamiento estable: 29 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 136 para Android, ChromeOS, Linux, macOS y Windows.

HTML y DOM

Compatibilidad de idiomas para CanvasTextDrawingStyles

El elemento DOM <canvas>, como todos los elementos DOM, acepta un atributo lang que se usa para definir el tratamiento específico del idioma para la selección de fuentes (cuando las fuentes tienen glifos específicos de la configuración regional). Los navegadores respetan este atributo. Sin embargo, cuando se crea un OffscreenCanvas, no hay forma de establecer la información de configuración regional, lo que puede generar un estado en el que un lienzo fuera de la pantalla produce resultados renderizados que difieren del lienzo en el que se usa su salida. Esta función agrega un atributo IDL lang a CanvasTextDrawingStyles para brindar a los desarrolladores un control directo sobre el lenguaje del dibujo de texto y las métricas.

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

CSS y IU

La propiedad dynamic-range-limit

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

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

Para eliminar las filtraciones del historial de navegación del usuario, los elementos de anclaje se aplican el estilo :visited solo si se hizo clic en ellos desde este sitio y origen de marco de nivel superior anteriormente.

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.

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

print-color-adjust sin prefijo

La propiedad print-color-adjust te permite ajustar los colores en las páginas web impresas. Es lo mismo que el -webkit-print-color-adjust que ya admite Chrome, pero con un nombre estandarizado.

No se quita la versión con el prefijo -webkit-.

Documentos de MDN | Error de seguimiento #376381169 | Entrada de ChromeStatus.com | Especificación

Se cambió el nombre del tipo attr() de string a raw-string.

El grupo de trabajo de CSS resolvió reemplazar el tipo attr() de string por raw-string.

Por lo tanto, a partir de Chrome 136, attr(data-foo string) se convierte en attr(data-foo raw-string).

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

Conmutación por error var() independiente del tipo

La parte de resguardo de una función var() no se valida en función del tipo de la propiedad personalizada a la que se hace referencia.

Error de seguimiento #372475301 | Entrada de ChromeStatus.com

API web

Envía eventos de clic al puntero capturado

Si se captura un puntero mientras se envía el evento pointerup, el evento click ahora se envía al destino capturado en lugar del ancestro común más cercano de los eventos pointerdown y pointerup según las especificaciones del evento de la IU.

En el caso de los punteros no capturados, el objetivo click no se modifica.

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

Sugerencias de compilación explícitas con comentarios mágicos

Permite adjuntar información sobre qué funciones se deben analizar y compilar de forma anticipada en archivos de JavaScript.

La información se codifica como comentarios mágicos.

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

Incorpora el 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 con el 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.

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

Protected Audience: Text conversion helpers

Las secuencias de comandos de ofertas y puntuación de Protected Audience que se comunican con WebAssembly deben convertir de manera eficiente los datos de tipo de cadena a (y desde) arrays de bytes (por ejemplo, para pasar cadenas dentro y fuera de WebAssembly con el ArrayBuffer de "memoria"). Esto proporciona dos funciones independientes, protectedAudience.encodeUtf8 y protectedAudience.decodeUtf8, para realizar estas tareas con un orden de magnitud más eficiente que hacerlo en JavaScript.

Entrada de ChromeStatus.com

RegExp.escape

RegExp.escape es un método estático que toma una cadena y muestra una versión con escape que se puede usar como patrón dentro de una expresión regular.

Por ejemplo:

const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.
console.log(ourLongText.replace(re));

Entrada de ChromeStatus.com | Especificaciones

Reglas de especulación: campo de etiqueta

Esto permite a los desarrolladores agregar un campo de etiqueta a las reglas de especulación. Este campo opcional se puede usar para hacer un seguimiento de la fuente de las reglas de especulación. Por ejemplo, para tratarlos de manera diferente en un servidor intermediario. Todas las etiquetas asociadas con una especulación se enviarán con el encabezado Sec-Speculation-Tags.

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

Se actualizó ProgressEvent para usar el tipo doble para loaded 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.

Entrada de ChromeStatus.com | Especificación

Privacidad y seguridad

Informes de la Política de Permisos para iframes

Se introduce un nuevo tipo de incumplimiento llamado "Posible incumplimiento de la Política de Permisos", que solo analizará la Política de Permisos (incluida la política solo de informes) y el atributo allow establecido en iframes para detectar el conflicto entre la Política de Permisos aplicada y los permisos propagados a los iframes.

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

Reduce la creación de huellas digitales en la información del encabezado Accept-Language

Reduce la cantidad de información que expone la cadena de valor del encabezado Accept-Language en las solicitudes HTTP y en navigator.languages. En lugar de enviar una lista completa de los idiomas preferidos del usuario en cada solicitud HTTP, Chrome ahora envía el idioma más preferido del usuario en el encabezado Accept-Language.

Error de seguimiento #1306905 | Entrada de ChromeStatus.com

Identidad

Actualizaciones de FedCM

Permite que FedCM muestre varios proveedores de identidad en el mismo diálogo, ya que todos los proveedores se encuentran en la misma llamada get(). Esto les proporciona a los desarrolladores una forma conveniente de presentarles a los usuarios todos los proveedores de identidad admitidos.

Chrome 136 también quita la compatibilidad para agregar otra cuenta en el modo pasivo de FedCM. Esta función permite mostrar un botón Usar otra cuenta junto con otras cuentas de IdP en el selector. Actualmente, la función no se usa, y las conversaciones de UX nos llevaron a creer que admitirla genera un flujo más complicado sin muchos beneficios. Esta función seguirá habilitada en el modo activo de FedCM.

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

Creación condicional de autenticación web (actualizaciones de llaves de acceso)

Las solicitudes de creación condicionales de WebAuthn permiten que los sitios web actualicen las credenciales de contraseña existentes a una llave de acceso.

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

Imágenes y contenido multimedia

AudioContext Estado interrumpido

Agrega un estado "interrupted" a AudioContextState. Este nuevo estado permite que el agente de usuario pause la reproducción durante el acceso de audio exclusivo (VoIP) o cuando se cierra la tapa de una laptop.

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

Control de la superficie capturada

Una API web que permite que las aplicaciones web realicen las siguientes acciones:

  1. Reenvía los eventos de la rueda a una pestaña capturada.
  2. Lee y cambia el nivel de zoom de una pestaña capturada.

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

CapturedSurfaceResolution

Expone la relación de píxeles de la superficie capturada mientras compartes la pantalla.

Esta función ayuda a las aplicaciones a conservar sus recursos del sistema o a adaptar la compensación de calidad sobre el ancho de banda según las resoluciones físicas y lógicas de la superficie capturada.

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

Compatibilidad con el códec H265 (HEVC) en WebRTC

Después de este cambio, HEVC se unirá a VP8, H.264, VP9 y AV1 como códecs compatibles en WebRTC. La compatibilidad se podrá consultar con la API de MediaCapabilities.

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

Actualizaciones de compatibilidad con el códec H26x para MediaRecorder

La API de MediaRecorder de Chromium ahora admite la codificación HEVC, presenta la cadena de códecs hvc1.* y agrega códecs nuevos (hev1.* y avc3.*) que admiten videos de resolución variable en MP4.

Se agregó compatibilidad con la codificación de plataformas HEVC en WebCodecs en Chromium M130. Como seguimiento, se agregó compatibilidad con la API de MediaRecorder en Chromium. La API ahora admite los tipos de muxer MP4 y Matroska con diferentes especificaciones de tipo mime HEVC y H.264. La codificación HEVC solo se admite si el dispositivo y el sistema operativo del usuario proporcionan las capacidades necesarias.

Entrada de ChromeStatus.com

Usa DOMPointInit para getCharNumAtPosition, isPointInFill y isPointInStroke

Este cambio alinea el código de Chromium con la especificación más reciente del W3C para SVGGeometryElement y SVGPathElement en términos del uso de DOMPointInit en lugar de SVGPoint para getCharNumAtPosition, isPointInFill y isPointInStroke.

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

WebGPU: Atributo isFallbackAdapter GPUAdapterInfo

El atributo booleano isFallbackAdapter GPUAdapterInfo indica si un adaptador tiene limitaciones de rendimiento significativas a cambio de una compatibilidad más amplia, un comportamiento más predecible o una privacidad mejorada. Ten en cuenta que es posible que no haya un adaptador de resguardo en todos los sistemas.

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

Cambios en el navegador

Barras de desplazamiento de Fluent

Esta función moderniza las barras de desplazamiento de Chromium (superpuestas y no superpuestas) en Windows y Linux para que se ajusten al lenguaje de diseño Fluent de Windows 11.

Las barras de desplazamiento de Fluent sin superposición se habilitarán de forma predeterminada en Linux y Windows. Este cambio también se aplica a Linux, ya que, históricamente, el diseño de la barra de desplazamiento de Chromium para Linux se ha alineado con lo que se envía en Windows. Aún se está decidiendo cómo exponer las barras de desplazamiento superpuestas de Fluent.

Error de seguimiento #1292117 | Entrada de ChromeStatus.com

Pruebas de origen

API de Audio Output Devices: setDefaultSinkId()

Esta función agrega setDefaultSinkId() a MediaDevices, lo que permite que la trama de nivel superior cambie el dispositivo de salida de audio predeterminado que usan sus tramas secundarias.

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

Habilita las aplicaciones web para que comprendan los tiempos de rendimiento bimodal

Las aplicaciones web pueden sufrir una distribución bimodal en el rendimiento de carga de la página debido a factores fuera de su control. Por ejemplo:

  • Cuando se inicia un usuario-agente por primera vez (una situación de "inicio en frío"), debe realizar muchas tareas de inicialización costosas que compiten por recursos en el sistema.
  • Las extensiones del navegador pueden afectar el rendimiento de un sitio web. Por ejemplo, algunas extensiones ejecutan código adicional en cada página que visitas, lo que puede aumentar el uso de la CPU y generar tiempos de respuesta más lentos.
  • Cuando una máquina está ocupada realizando tareas intensivas, puede ralentizar la carga de las páginas web.

Un nuevo campo confidence en el objeto PerformanceNavigationTiming permitirá a los desarrolladores discernir si los tiempos de navegación son representativos para su aplicación web.

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

Actualización de la implementación de renderización de texto de Canvas

Este no es un cambio expuesto a la Web.

La implementación de CanvasRenderingContext2D, measureText(), fillText() y strokeText() tiene un cambio drástico. Esto podría afectar el rendimiento, por lo que nos gustaría ejecutar una prueba de origen para que las aplicaciones con mucho lienzo puedan probar la nueva implementación.

Prueba de origen | Error de seguimiento #389726691 | Entrada de ChromeStatus.com

Bajas y eliminaciones

Quitar HTMLFencedFrameElement.canLoadOpaqueURL()

El método HTMLFencedFrameElement canLoadOpaqueURL() se reemplazó por navigator.canLoadAdAuctionFencedFrame() en 2023, y llamarlo generó una advertencia de consola de baja desde que se apuntó a la nueva API. El método se quitó de Chrome 136.

Entrada de ChromeStatus.com