Chrome 117 beta

Subcuadrícula de la cuadrícula de CSS, compatibilidad con animaciones de entrada y salida para CSS, agrupación de arrays, asistentes de iterador y mucho 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 que se mencionan aquí en los vínculos proporcionados o en la lista de ChromeStatus.com. Chrome 117 está en fase beta a partir del 16 de agosto de 2023. Puedes descargar la versión más reciente en Google.com para computadoras 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 permiten 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 diseño 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 diseños 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 verde 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 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 o no, y puede tener dos valores: none o auto.

Propiedad de comportamiento de transición de CSS

La propiedad transition-behavior de CSS es una extensión de la propiedad transition que permite el uso de propiedades discretas en las transiciones. Cuando se especifica el valor allow-discrete para el comportamiento de la transición, las propiedades discretas ahora iniciarán animaciones y cambiarán de su valor inicial a su valor final al 50%. Para las transiciones en las que display: none y content-visibility: hidden son uno de los valores iniciales o finales, el valor visible se usará durante toda la duración de 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 utilice los segmentos definidos en su elemento superior, en lugar de crear una nueva definición de seguimiento para las filas, las columnas o ambas.

Ajuste de texto CSS: bonito

El valor pretty de la propiedad text-wrap de CSS se optimiza para obtener el mejor diseño, en lugar de la velocidad. Está diseñada para el texto del cuerpo y, por lo tanto, requiere varias líneas. Cuando usas pretty, el 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 y evita 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: bonita y observa cómo cambia el valor de la presentación de texto.

contains-intrinsic-size: no se admite automáticamente

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

APIs web

Agrupación de arrays

La agrupación de arreglos es una operación extremadamente común, que se ejemplifica mejor con la cláusula GROUP BY de SQL y la programación MapReduce (que es mejor para mapear-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 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 devuelve un Map, donde las claves pueden ser valores arbitrarios.

Borra las sugerencias de clientes a través del encabezado Clear-Site-Data

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

Sintaxis del comodín del encabezado Clear-Site-Data

Los sitios web ahora podrán enviar Clear-Site-Data: "*" para borrar todos los destinos de almacenamiento ("cookies", "caché" y "almacenamiento"). Ten en cuenta que, por el momento, Chrome no admite borrar "executionContexts"; sin embargo, si lo agregamos en el futuro, también se borrarán todos los encabezados segmentados para "*".

customElements.getName

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

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.

Haz que CaptureController derive de la interfaz de EventTarget

La interfaz de 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.

Tipo de entrega 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

Se verificará el valor del puerto 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 manera diferente después del cambio:

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

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

API de Private State Token

Esta es una nueva API para propagar indicadores privados limitados en los sitios, sin usar identificadores persistentes entre sitios, como las cookies de terceros. Los métodos antifraude que dependen de las cookies de terceros no funcionarán una vez que las cookies de terceros dejen de estar disponibles. La API de Private State Token no genera ni define indicadores antifraude; esto depende del origen correspondiente y de las entidades emisoras de los tokens. En su lugar, la API mantiene la privacidad aplicando límites en la información transferida en estos indicadores. La API se basa en una variante del protocolo Privacy Pass, que el IETF está estandarizando. Se puede considerar como una forma expuesta en la Web de los protocolos de Privacy Pass. La especificación de la API se actualizará para incluir nuevas versiones y 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 en el código de emisión de tokens: no esperamos cambios en las API de Fetch para la emisión y el canje para desarrolladores. La API de Private State Token se conocía antes como la API de Trust Token. Se cambió su nombre para capturar con mayor precisión la semántica subyacente y destacar los beneficios de privacidad para los usuarios.

Analizador de host IPv6 incorporado a IPv4 compatible con el estándar de URL

Se actualizará el comportamiento del análisis del analizador de host IPv6 incorporado de IPv4 para que cumpla estrictamente con el estándar de URL web. Las restricciones introducidas en la dirección IPv6 son las siguientes:

  • La dirección IPv4 incorporada siempre debe tener 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 la parte de su ruta contiene "%00" (o 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 del encabezado RTP de WebRTC

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

Cuantizador por fotograma en VideoEncoder

Se agregó "quantizer" VideoEncoderBitrateMode 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 de navigator.usb.requestDevice() permite a los desarrolladores web excluir algunos dispositivos del selector de navegadores. Se puede usar para excluir dispositivos que coinciden con un filtro más amplio, pero que no son compatibles.

Pruebas de origen en curso

En Chrome 117, puedes habilitar las nuevas pruebas de origen que se muestran a continuación.

Transporte de diccionarios de compresión con Brotli compartido

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

Regístrate para la prueba de origen de CompressionDictionaryTransport.

Prueba de baja de WebSQL

WebSQL se quitará de Chrome. Se recomienda que los sitios que lo utilizan pasen a SQLite a través de 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.

Apps 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 forma, se agregará 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 para 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 obtener 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.

Dar de baja el evento de descarga

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

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

Chrome quitará la compatibilidad con los algoritmos de firma que utilizan 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] Se anula el envío de getStats() heredado basado en devoluciones de llamada.

RTCPeerConnection tiene dos versiones de getStats(): una que cumple con las especificaciones y muestra el informe a través de la resolución de una promesa, y otra no estándar, que muestra un informe muy diferente mediante una devolución de llamada como primer argumento. Se quitó la que se basa 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() heredado.

Eliminación del valor -1 para WebRTC getStats datachannelIdentifier

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 cambio, se omitirá el miembro del diccionario.

Eliminación de WebRTC getStats codificadorImplementation y decoderImplementation “unknown”

La API de 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"" a los casos en los que se consulten estadísticas antes de que se codificó o decodificó un fotograma de video. En cambio, se omitirá el miembro del diccionario.

Propiedad de CSS -webkit-highlight

Quita la propiedad -webkit-highlight de CSS destinada a destacar texto, pero nunca estandarizada. 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 seudo de destacado de CSS.