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.