Chrome 117 beta

Subcuadrícula de CSS, compatibilidad con animación de entrada y salida para CSS, agrupación de arrays, asistentes 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 que se enumeran aquí a través de los vínculos proporcionados o de la lista en ChromeStatus.com. Chrome 117 está beta desde el 16 de agosto de 2023. Puedes descargar la versión más reciente en Google.com para computadoras o desde Google Play Store para Android.

CSS

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

La regla de estilo @starting

Esta regla “at” permite que los autores inicien transiciones de CSS en la primera actualización de estilo.

Las transiciones de CSS no activan transiciones de diseños iniciales en la primera actualización de diseño de un elemento ni cuando el tipo de visualización cambia de none a algún otro tipo. De esta manera, se evitan transiciones inesperadas de los diseños iniciales. Para iniciar una transición a partir de 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 del color de fondo de verde a lima en la primera actualización del 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 está en la capa superior o no, y puede tomar dos valores: none o auto.

Propiedad de comportamiento de transición de CSS

La propiedad de CSS transition-behavior es una extensión de la propiedad transition que permite usar propiedades discretas en las transiciones. Cuando se especifica 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%. 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

Se implementó en Chrome el valor subgrid para grid-template-columns y grid-template-rows. Este valor permite que una cuadrícula anidada use los recorridos definidos en su elemento superior, en lugar de crear una definición de segmento nueva para filas, columnas o ambas.

Ajuste de texto de CSS: bastante

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, por lo que se esperan varias líneas. Cuando usas pretty, un desarrollador habilita de forma explícita 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: presentación y observa cómo cambia el valor la presentación de texto.

include-intrinsic-size: compatibilidad automática con ninguno

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

API web

Agrupación de arrays

La agrupación de arrays es una operación muy común, que se ejemplifica mejor con la cláusula GROUP BY de SQL y la programación MapReduce (que se considera mejor en map-group-reduce). La capacidad de combinar datos en grupos permite a los desarrolladores calcular conjuntos de datos de mayor orden, como la antigüedad promedio de una cohorte o valores diarios de LCP de una página web. Para habilitar esta función, esta función agrega los métodos estáticos Object.groupBy y Map.groupBy. El método Object muestra un objeto plano, 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.

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

Los sitios web ahora podrán borrar la caché de sugerencias de clientes mediante Clear-Site-Data: "clientHints". Las sugerencias de clientes ahora también se borrarán cuando “cookies”, “caché” o “*” están orientadas por el mismo encabezado. Esto se debe a que, si el usuario borra las cookies de la IU, las sugerencias de cliente ya se borraron, la caché de sugerencias de cliente es una caché y debe ser coherente con los destinos comodín, respectivamente.

Sintaxis del comodín del encabezado de datos de sitios borrados

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 Chrome no admite borrar "executionContexts" por ahora, pero si lo agregamos en el futuro, cualquier encabezado que se oriente a "*" los eliminaría también.

customElements.getName

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

Asistentes de iterador

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

Haz 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 los objetos de escucha de esos eventos, se ponen a disposición los métodos EventTarget 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 la página anterior cargó previamente.

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 excedan 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 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 entre sitios, sin usar identificadores persistentes entre sitios, como las cookies de terceros. Los métodos antifraude que dependen de cookies de terceros no funcionarán una vez que se den de baja estas cookies. La API de Private State Token no genera ni define indicadores antifraude. Esto depende de la entidad propia y de las entidades emisoras de tokens correspondientes. En cambio, la API mantiene la privacidad aplicando límites a la información transferida en estas señales. La API se basa en una variante del protocolo Privacy Pass, que está estandarizando por el IETF. Se puede considerar como una forma expuesta en la Web de los protocolos de Privacy Pass. Las especificaciones de la API se actualizarán para nuevas versiones y tipos de tokens, y se mantendrán al día con las especificaciones del grupo de trabajo de Privacy Pass. Los cambios esperados estarían en los protocolos criptográficos subyacentes y en el código de emisión de tokens: no se esperan cambios en las APIs de Fetch de emisión y canje para desarrolladores. La API de Private State Token se conocía anteriormente como la API de Trust Token. Se cambió el nombre para capturar con mayor precisión la semántica subyacente y destacar los beneficios de privacidad para los usuarios.

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

El comportamiento de análisis del analizador de host IPv6 incorporado de IPv4 se actualizará para que siga estrictamente el estándar de URL web. Estas son las restricciones que se introdujeron en la dirección IPv6:

  • La dirección IPv4 incorporada siempre debe 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 una ruta de URL válida

Actualmente, Chrome considera que una URL no es válida si la parte de la ruta de acceso de la URL contiene "%00" (o nulo), que no cumple con el Estándar para 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 para URLs, ningún carácter o secuencia de bytes en la ruta de la URL no debe hacer que la URL no sea válida, y este cambio actualiza a Chrome para que cumpla con 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

Agrega "cuantizador" VideoEncoderBitrateMode para VideoEncoder. Esto permite especificar un parámetro del 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 del navegador. 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 diccionarios de compresión con Brotli compartido

Esta función agrega compatibilidad con el uso de respuestas anteriores designadas, como un diccionario externo para la compresión de respuestas HTTP de Brotli.

Regístrate en la prueba de origen de CompressionDictionaryTransport.

Prueba de baja de WebSQL

Se quitará WebSQL de Chrome. Se recomienda a los sitios que usan esta información que la cambien 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 capacidad de seguir usando WebSQL hasta Chrome 123 (marzo de 2024). Regístrate en la prueba de baja de WebSQL.

Apps web con pestañas

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

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

Bajas y eliminaciones

Esta versión de Chrome incluye las bajas y las eliminaciones que se indican a continuación. Visita ChromeStatus.com para consultar las listas de bajas planificadas, bajas actuales y eliminaciones anteriores.

En esta versión de Chrome, dos funciones dan de baja dos funciones.

Dar de baja el evento de descarga

En Chrome 117, se iniciará el proceso de dar de baja el controlador de eventos unload. Si tu sitio los utiliza, te recomendamos que leas la entrada exclusiva sobre la baja de unload para obtener más detalles.

Baja de las firmas de servidor SHA-1 de TLS

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 siendo compatibles.

Esta versión de Chrome quita cuatro funciones.

[WebRTC] 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 que no es estándar muestra un informe muy diferente mediante una devolución de llamada como primer argumento. Ahora se quita el que está basado 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 -1 para WebRTC getStats datachannelIdentifier

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

Eliminación de WebRTC getStats encoderImplementation y decoderImplementation "desconocido"

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 "desconocido" en los casos en que se consulten las estadísticas antes de codificar o decodificar un fotograma de video. En su lugar, se omitirá el miembro del diccionario.

Propiedad de CSS -webkit-highlight

Quita la propiedad -webkit-highlight del CSS para destacar texto, pero nunca estandarizada. No tiene ningún efecto visible en cromo (se analiza, pero nunca se utiliza en la renderización de 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 destacado de CSS.