Chrome 117 beta

Subcuadrícula de CSS, compatibilidad con animación de entrada y salida para CSS, agrupación de arrays, ayudantes de iterador y más.

A menos que se indique lo contrario, los cambios descritos 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 en la lista de ChromeStatus.com. Chrome 117 está en versión beta a partir del 16 de agosto de 2023. Puedes descargar la versión más reciente en Google.com para computadoras de escritorio o en Google Play Store para Android.

CSS

Esta versión agrega seis funciones nuevas de CSS. Las tres primeras propiedades forman parte del trabajo necesario para habilitar transiciones en propiedades discretas, que habilitan las animaciones de entrada y salida.

La regla de estilo @starting

Esta regla-at permite a los autores iniciar transiciones de CSS en la primera actualización de estilo.

Las transiciones de CSS no activan transiciones de estilos iniciales en la primera actualización de estilo de un elemento o cuando el tipo de visualización cambia de none a algún otro tipo. Esto se hace para evitar transiciones inesperadas de estilos iniciales. Para comenzar una transición desde la primera actualización de diseño, ahora puedes aplicar diseños desde una regla @starting-style. Por ejemplo, el siguiente CSS inicia una transición de color de fondo de verde a lima en la primera actualización de estilo de un elemento div:

div { 
  transition: background-color 0.5s; 
  background-color: lime; 
} 

@starting-style {
  div { 
    background-color: green; 
  } 
}

La propiedad de superposición

La propiedad overlay permite a los desarrolladores mantener los elementos en la capa superior para una transición de salida. La propiedad de superposición se agrega para indicar si un elemento se encuentra en la capa superior, y puede tener dos valores: none o auto.

Propiedad de comportamiento de transición de CSS

La propiedad transition-behavior de CSS es una referencia de la propiedad transition que permite usar propiedades discretas en las transiciones. Si especificas el valor allow-discrete para el comportamiento de transición, las propiedades discretas ahora iniciarán animaciones y cambiarán de su valor inicial a su valor final en un 50%. En el caso de las transiciones en las que display: none y content-visibility: hidden son uno de los valores iniciales o finales, el valor visible se utilizará durante toda la transición.

El valor de la subcuadrícula de la cuadrícula de CSS

El valor subgrid para grid-template-columns y grid-template-rows ahora se implementa en Chrome Este valor permite que una cuadrícula anidada use los segmentos definidos en su elemento superior, en lugar de crear una nueva definición de seguimiento para filas, columnas o ambas.

Ajuste de texto de CSS: Pretty

El valor pretty de la propiedad text-wrap de CSS se optimiza para obtener el mejor diseño, en lugar de la velocidad. Se diseñó para el texto del cuerpo y, por lo tanto, requiere varias líneas. Cuando usas pretty, un desarrollador habilita explícitamente un método de diseño que puede ser más lento que wrap, lo que optimiza el rendimiento. La implementación actual en Chrome se optimiza para los huérfanos a fin de evitar que se muestre una sola palabra en la parte inferior de un párrafo de texto.

En Chrome 117, prueba esta demostración de ajuste de texto: atractivo y observa cómo el valor cambia la presentación de texto.

contains-intrinsic-size: compatibilidad automática no nula

Esta función extiende la sintaxis contain-intrinsic-size existente para que también incluya auto && none.

APIs web

Agrupación de arreglos

La agrupación de arreglos es una operación extremadamente común, mejor ejemplificada por la cláusula GROUP BY de SQL y la programación MapReduce (que se considera mejor map-group-reduce). La capacidad de combinar datos en grupos permite a los desarrolladores calcular conjuntos de datos de orden superior, como la edad promedio de una cohorte o los valores de LCP diarios para una página web. Esta función permite hacerlo agregando los métodos estáticos Object.groupBy y Map.groupBy. El método Object muestra un objeto sin formato, en el que los grupos son claves de propiedad. El método Map muestra un Map, en el que las claves pueden ser valores arbitrarios.

Borrar Client Hints a través del encabezado Clear-Site-Data

Los sitios web ahora podrán borrar la caché de sugerencias de clientes con Clear-Site-Data: "clientHints". Ahora también se borrarán las sugerencias de clientes cuando el mismo encabezado incluya "cookies", "caché" o "*". Esto se debe a que si el usuario borra las cookies en las sugerencias de cliente de la IU que también se borraron, la caché de sugerencias del cliente es una caché y debe ser coherente con los objetivos comodín, respectivamente.

Sintaxis del encabezado Clear-Site-Data

Los sitios web ahora podrán borrar todas las segmentaciones de almacenamiento ("cookies", "caché" y "almacenamiento") enviando Clear-Site-Data: "*". Ten en cuenta que, por el momento, Chrome no admite la eliminación de "executionContexts"; sin embargo, si la agregamos en el futuro, cualquier encabezado segmentado para "*" también las borrará.

customElements.getName

El método customElements.getName() muestra el nombre de etiqueta de la definición del elemento personalizado determinada.

Asistentes de Iterator

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

Cómo hacer que CaptureController derive de la interfaz de EventTarget

La interfaz CaptureController permite una mayor manipulación de una sesión de captura de pantalla. En el futuro, se espera que los eventos relacionados con una sesión de captura se envíen a ese controlador. Para poder administrar objetos de escucha para esos eventos, los métodos EventTarget están disponibles en CaptureController.

DeliveryType de PerformanceResourceTiming

La propiedad deliveryType de PerformanceResourceTiming muestra información sobre cómo se entregó un recurso. Por ejemplo, los recursos que se entregaron desde la caché (actualmente expuestos a través de transferSize) y las navegaciones que se cargaron previamente en la página anterior.

Verificación de desbordamiento de puertos en métodos set de URL

El valor del puerto se verificará cuando se configure url.port. Todos los valores que superen el límite numérico de 16 bits ya no serán válidos. Por ejemplo, la siguiente secuencia de comandos se comporta de forma diferente después del cambio:

u = new URL("http://test.com"); 
u.port = 65536; 
console.log(u.port); 

Antes del cambio, el resultado es 65536. Después del cambio, el resultado será 80.

API de Private State Token

Esta es una nueva API para propagar indicadores privados limitados entre sitios, sin usar identificadores persistentes entre sitios, como cookies de terceros. Los métodos antifraude que dependen de cookies de terceros no funcionarán una vez que se den de baja las cookies de terceros. La API de Private State Token no genera ni define indicadores antifraude; esto depende de los emisores de origen y de los emisores de los tokens. En cambio, la API mantiene la privacidad aplicando límites a la información transferida en estos indicadores. La API se basa en una variante del protocolo Privacy Pass, que está en proceso de estandarizar por el IETF. Puede considerarse como una forma expuesta en la Web de los protocolos de Privacy Pass. La especificación de la API se actualizará para las nuevas versiones y los tipos de tokens, y se mantendrá al día con las especificaciones del grupo de trabajo de Privacy Pass. Los cambios esperados se encontrarían en los protocolos criptográficos subyacentes y el código de emisión de tokens: no esperamos cambios en las APIs de Fetch de emisión y canje para desarrolladores. La API de Private State Token se conocía antes como la API de Trust Token. Se le cambió el nombre para captar con mayor precisión la semántica subyacente y destacar los beneficios de privacidad para los usuarios.

Analizador de host IPv6 incorporado de IPv4 compatible con URL

Se actualizará el comportamiento de analizar el analizador de host IPv6 incorporado de IPv4 para que siga estrictamente el estándar de URLs web. Las restricciones introducidas en la dirección IPv6 son las siguientes:

  • La dirección IPv4 incorporada siempre deberá constar de 4 partes.
  • Las direcciones con menos de 4 partes, como http://[::1.2], ya no serán válidas. La función forma parte de la interoperabilidad de URLs de 2023.

URL: Permitir "%00" como ruta de URL válida

Actualmente, Chrome considera que una URL no es válida si su parte de la ruta contiene "%00" (o un valor nulo), lo cual no cumple con el estándar de URL. Por ejemplo, la siguiente prueba falla en Chrome, ya que new URL(...) arroja una excepción de URL no válida.

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

Según el estándar de URL, cualquier secuencia de caracteres o bytes en la ruta de URL no debe hacer que la URL no sea válida, y este cambio actualiza Chrome para que siga ese estándar.

Control de extensión de encabezado RTP de WebRTC

Extiende la API de RTCRtpTransceiver de WebRTC para ofrecer control sobre las extensiones de encabezado de RTP que se negocian.

Cuantizador por fotograma en VideoEncoder

Se agregó el VideoEncoderBitrateMode de "quantizer" para VideoEncoder. Esto permite especificar un parámetro cuantizador para cada fotograma para los códecs de video AV1, VP9 y AVC.

Opción exclusionFilters de WebUSB en requestDevice()

La opción exclusionFilters en navigator.usb.requestDevice() permite a los desarrolladores web excluir algunos dispositivos del selector de navegadores. Se puede usar para excluir dispositivos que coincidan con un filtro más amplio, pero que no sean compatibles.

Pruebas de origen en curso

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

Transporte de diccionario por compresión con Brotli compartido

Esta función agrega compatibilidad para usar respuestas anteriores designadas como un diccionario externo para las respuestas HTTP que comprimen Brotli.

Regístrate en la prueba de origen de CompressionDictionaryTransport.

Prueba de baja de WebSQL

WebSQL se quitará de Chrome. Se recomienda que los sitios que lo usan se trasladen a SQLite mediante Wasm.

Esta prueba de baja les brinda a los desarrolladores que necesitan más tiempo para la migración la posibilidad de seguir usando WebSQL hasta Chrome 123 (marzo de 2024). Regístrate para la prueba de baja de WebSQL](/origintrials/#/register_trial/494270059103911937).

Aplicaciones web con pestañas

Permite que las ventanas de aplicaciones web tengan una barra de pestañas, por ejemplo, para editar varios documentos en la misma aplicación. De esta manera, se agrega un nuevo modo de visualización "con pestañas" y un nuevo campo de manifiesto para permitir personalizaciones en la barra de pestañas.

Regístrate en la prueba de origen de Apps web con pestañas.

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 una lista de las bajas planificadas, las bajas actuales y las eliminaciones anteriores.

En esta versión de Chrome, dos funciones dejarán de estar disponibles.

Da de baja el evento de descarga

Chrome 117 iniciará el proceso de dar de baja el controlador de eventos unload. Si tu sitio las usa, te recomendamos que leas la entrada específica sobre cómo dar de baja unload para obtener más información.

Las firmas de servidor SHA-1 de TLS dejarán de estar disponibles

Chrome quitará la compatibilidad con los algoritmos de firma que usan SHA-1 para las firmas del servidor durante el protocolo de enlace TLS. Esto no afecta la compatibilidad con SHA-1 en los certificados de servidor, que ya se quitaron, ni en los certificados de cliente, que siguen disponibles.

Esta versión de Chrome quita cuatro funciones.

[WebRTC] Unship heredada de getStats() basada en devoluciones de llamada

RTCPeerConnection tiene dos versiones de getStats(): una que cumple con las especificaciones muestra el informe mediante la resolución de una promesa y otra que no es estándar muestra un informe muy diferente mediante una devolución de llamada como primer argumento. Se quitó la basada en devoluciones de llamada.

Para obtener más información sobre la migración y qué hacer si necesitas más tiempo, consulta la Guía de migración de getStats() heredada.

Eliminación del valor de -1 para getStats datachannelIdentifier de WebRTC

La API de getStats de WebRTC expone una propiedad dataChannelIdentifier. Ya no proporcionará el valor "-1" en los casos en que se consulten estadísticas antes de que se establezca la conexión de canal de datos. En su lugar, se omitirá el miembro del diccionario.

Se quitaron "unknown" los codificadores getStats y decoderImplementation de WebRTC.

La API getStats de WebRTC expone los nombres de implementación del codificador y el decodificador para el video entrante y saliente. Ya no proporcionará el valor "unknown" en los casos en que se consulten estadísticas antes de que se codifique o decodifique un fotograma de video. En su lugar, se omitirá el miembro del diccionario.

Propiedad de CSS -webkit-highlight

Quita la propiedad de CSS -webkit-highlight para destacar texto, pero nunca estandarizarla. No tiene ningún efecto visible en Chromium (se analiza, pero nunca se usa para renderizar contenido). La propiedad se quitó de WebKit en 2014, se marcó como obsoleta en MDN y se reemplazó recientemente por la especificación de Pseudo Highlights de CSS.