Chrome 122 beta

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 mencionadas aquí a través de los vínculos proporcionados o de la lista en ChromeStatus.com. Chrome 122 está en versión beta a partir del 24 de enero de 2024. Puedes descargar la versión más reciente en Google.com para computadoras o en Google Play Store para Android.

CSS

En esta versión, se agregan tres funciones nuevas de CSS.

Las consultas @container de CSS con funciones no compatibles nunca coinciden

Los selectores @container que contienen consultas no compatibles nunca seleccionarán ningún contenedor, lo que significa que nunca coincidirán.

Esto significa que esta consulta nunca coincidirá con ningún contenedor, incluso si también hay un contenedor de tamaño que coincida con la consulta de ancho. Por ejemplo, la siguiente consulta nunca coincidirá debido a la función desconocida:

@container (width > 0px) or (unknown) {}

Este es un cambio reciente en la especificación para evitar problemas de compatibilidad con versiones futuras.

Seudoelemento CSS ::backdrop que se hereda del elemento de origen

El seudoelemento ::backdrop que se usa para heredar de los valores iniciales. Eso significaba que ::backdrop no podía usar los valores de las propiedades personalizadas, a menos que se especifique directamente en la regla ::backdrop. Ahora se modificó la especificación para que ::backdrop herede contenido del elemento de origen. Este cambio hace que la implementación de Chrome coincida con la especificación nueva.

Condiciones supports() del CSS para @import

@import ahora acepta una condición supports(). Si la condición supports() no coincide, no se recuperará la importación.

@import "scroll-driven-animations.css" supports(animation-timeline: auto);

Las consultas de funciones que se deben colocar dentro de supports() son las mismas que se usan con @supports.

APIs web

API de Async Clipboard: Lee código HTML no limpio

Se agrega una opción unsanitized en el método read() para obtener el formato HTML no limpio. A menos que los sitios incluyan esta propiedad, se limpiará la lectura del portapapeles.

De forma predeterminada, cuando se leen tipos de MIME text/html con la API asíncrona, se invoca al limpiador para quitar el contenido del lenguaje de marcado HTML debido a cuestiones de seguridad, y los estilos están intercalados en el HTML. Esto genera una gran carga útil de HTML y la pérdida de la fidelidad del contenido HTML cuando lo leen los desarrolladores web o las apps para dispositivos móviles.

No borres los objetos de tipo de archivo en dataTransfer.clearData()

Se actualizó Chrome para que coincida con la spec, que especifica que clearData() no afecta a los objetos de archivo. Solo borra los objetos de tipo text.

FedCM: desconectar

Permite desconectar una cuenta de acceso federada mediante el sitio web del usuario de confianza. Con la API de desconexión, un usuario de confianza puede notificar al proveedor de identidad que una cuenta previamente utilizada ahora está desconectada y, por lo tanto, para usar esa cuenta otra vez con acceso federado, se debe tratar como una cuenta nueva.

Cancelación de evento de mousedown interoperable en iframe

Se hizo que los objetivos del evento del mouse sean independientes de la cancelación del evento de mousedown cuando se arrastre el puntero fuera de un iframe. Cuando se arrastra el mouse fuera de un iframe, todos los navegadores (incluido Chrome) envían eventos mousemove y mouseup al iframe. Sin embargo, si se cancela el evento mousedown, Chrome hoy mantiene una excepción anterior de WebKit que indica que los eventos mousemove y mouseup se envían al marco externo. WebKit quitó esta excepción el año pasado, y Mozilla nunca mostró este comportamiento en los últimos años. Esta función quitará la excepción exclusiva de Chrome en este caso especial.

Asistentes de iterador

Los asistentes de iterador son métodos nuevos en el prototipo del iterador para permitir el uso y el consumo general de iteradores.

MessagePort.onclose

Un cambio en la API de Channel Messaging, que notifica a uno de los MessagePorts que se separó el otro puerto. Es decir, se llama a close(), se destruye un documento adeudado o se recolecta el puerto.

Extensiones RTCRtpSender setParameters() para solicitar la generación de un fotograma de claves

Agrega un segundo parámetro opcional a la llamada RTCRtpSender.setParameters de WebRTC, que se puede usar para pedirle al codificador asociado que genere un fotograma clave.

Establecer métodos

Los métodos set son métodos nuevos, como la unión y la intersección, que se agregan a la clase Set integrada de JavaScript.

API de Storage Buckets

Con los buckets de almacenamiento, los sitios pueden organizar los datos en el dispositivo en “buckets” separados, lo que permite que los usuarios-agentes expulsen los datos agrupados independientemente de los que se encuentran en otros buckets, y que los sitios administren de forma ergonómica los datos relacionados de forma semántica. Cada bucket de almacenamiento puede contener datos asociados con las APIs de almacenamiento establecidas, como IndexedDB y CacheStorage.

Patrón de URL: hasRegExpGroups

Permite inspeccionar si una URLPattern usa uno o más grupos de expresiones regulares de ECMAScript y, por lo tanto, puede no ser adecuado para el uso en casos en los que un motor de ECMAScript no está disponible (como algunas APIs previstas próximamente). En sentido estricto, esto refleja algo que los desarrolladores podrían saber cuando inspeccionan el patrón, pero tener acceso a la implementación de UA de esta verificación lo hace más sencillo.

drawBufferStorage de WebGL

WebGL permite renderizar contenido en texturas y búferes de renderización de muchos formatos de píxeles diferentes. Por ejemplo, 8 bits, de punto flotante y codificación sRGB.

El búfer de dibujo de WebGL (el búfer que se pasa al compositor) es de 8 bits de forma predeterminada. La función drawBufferStorage permite que WebGL configure el formato de píxeles de este búfer de dibujo, lo que permite a los desarrolladores hacer lo siguiente.

  • Evita tener una copia adicional cuando conviertas su renderización al formato de píxeles del búfer de dibujo predeterminado.
  • Dibuja contenido con más de 8 bits de precisión.

Esta última función desbloquea varias aplicaciones adicionales:

  • Contenido de una amplia gama de colores sin pérdida de precisión.
  • Aplicaciones médicas que requieren más de 8 bits de precisión
  • Aplicaciones de alto rango dinámico (cuando estén disponibles)

Encapsulamiento de claves X25519Kyber768 para TLS

Protege el tráfico actual de TLS de Chrome contra el criptoanálisis cuántico futuro mediante la implementación del algoritmo de acuerdo de claves cuántico Kyber768. Este es un acuerdo de claves híbrido X25519 + Kyber768 basado en un estándar IETF. Esta especificación y lanzamiento están fuera del alcance de W3C. Este acuerdo de claves se lanzará como un algoritmo de cifrado de TLS y debe ser transparente para los usuarios.

Pruebas de origen en curso

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

Extensiones de alcance de la aplicación web

El alcance de la app web (definido por el campo de alcance) solo se puede definir con una ruta de acceso de un solo origen. Se usa para determinar si el documento actual de la ventana de una app es parte de ella. También determina qué URLs se permiten en otros miembros del manifiesto.

Con scope_extensions, los desarrolladores pueden expandir los comportamientos de su app para incluir otros orígenes si existe un acuerdo entre el origen principal de una app web y los asociados.

Regístrate en la prueba de origen de las extensiones de alcance de aplicaciones web

Control de superficie capturada

La API de Captured Surface Control permite que las aplicaciones web produzcan eventos de ruedas en una pestaña o ventana capturadas, y lean o escriban el nivel de zoom de una pestaña capturada.

Regístrate en la prueba de origen del Control de superficie capturada.