Versión beta de Chrome 115

Varias palabras clave para la propiedad de visualización de CSS, WGSLLanguageFeatures para WebGPU, actualizaciones de HTTPS 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 en ChromeStatus.com. Chrome 115 está en versión beta a partir del 31 de mayo 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

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

Varios valores de la propiedad display

La propiedad display del CSS ahora acepta varias palabras clave como valor, además de las palabras clave heredadas precompuestas. Las primeras dos palabras clave representan los valores internos y externos de la pantalla, hay marcas opcionales para list-item, valores internos, como table-cell, y los valores de cuadro de contents y none.

Con las palabras clave internas y externas, puedes definir cómo se comporta el cuadro externo (bloqueado o intercalado) y cómo se comportan los elementos secundarios internos, por ejemplo, flex, grid o flow. Por lo tanto, display: flex se convierte en display: block flex y display: block se convierte en display: block flow. Consulta MDN para obtener una lista de asignaciones comunes y más información.

Consultas de contenedor de estilo de contexto booleano

Chrome 115 admite consultas de contenedores style() sin un valor de declaración, solo un nombre de propiedad, como una forma de hacer coincidir valores no iniciales. Anteriormente, tendrías que usar not style(--my-property: initial). Ahora puedes usar style(--my-property) para hacer coincidir cualquier valor no inicial.

Animaciones basadas en desplazamientos

ScrollTimeline y ViewTimeline son una extensión de la especificación de Web Animations que permite a los desarrolladores usar la posición de una barra de desplazamiento o la posición de un elemento dentro de una barra de desplazamiento como una "hora" de entrada, en lugar del tiempo de reloj monótono predeterminado. Esto habilita animaciones basadas en desplazamientos aceleradas, como una barra de navegación que se reduce, sin requerir la ejecución de la secuencia de comandos del usuario. Se pueden declarar y crear instancias de ellas a través de CSS y JavaScript, que se usan en animaciones de CSS y Web Animations.

Consulta Cómo animar elementos al desplazarse con las animaciones basadas en desplazamientos para obtener más detalles.

Se corrigió la regresión por la que los elementos con display: contents ya no aparecían en el árbol de accesibilidad.

Se introdujo una regresión que causaba que los elementos con display: contents perdieran información semántica y ya no estuvieran representados de manera correcta en el árbol de accesibilidad. Chrome 115 incluye una solución para este problema.

APIs web

Aumento del tamaño máximo de un WebAssembly.Module() en el subproceso principal a 8 MB

El constructor WebAssembly.Module() compila un módulo binario WebAssembly de forma síncrona, lo que puede bloquear el subproceso principal. Para evitar esto, el tamaño máximo de un módulo WebAssembly que se puede compilar con este constructor se limita a 8 MB. Los módulos más grandes se pueden compilar de forma asíncrona en el subproceso principal con WebAssembly.compile() o de forma síncrona en un subproceso de trabajo. El límite de 8 MB es una extensión del límite original de 4 KB. Esta extensión es posible gracias a las mejoras en el tiempo de ejecución V8 de WebAssembly. El límite de 8 MB se determinó mediante mediciones de rendimiento en un teléfono Google Pixel 1, que actualmente se considera un teléfono representativo de gama baja. Los futuros desarrollos en V8 o en hardware podrían permitir extensiones adicionales del límite.

FedCM: Compatibilidad con requisitos de mediación para la administración de credenciales para la reautenticación automática

Admite los requisitos de mediación de la administración de credenciales para proporcionar una UX de reautenticación optimizada a los usuarios que crearon cuentas federadas en sitios web con la API de FedCM.

Actualizaciones de HTTPS

Actualiza de forma automática y optimista todas las navegaciones del marco principal a HTTPS, con resguardo rápido a HTTP.

Cómo particionar las APIs de Storage, Service Worker y Communication

Para evitar ciertos tipos de seguimiento entre sitios de canales laterales, Chrome está particionando las APIs de almacenamiento y comunicaciones en contextos de terceros. Esto incluye el almacenamiento administrado por la cuota, los service workers y las APIs de comunicación (como BroadcastChannel). Para obtener más detalles, consulta la documentación sobre la partición de almacenamiento.

Resource Timing: Cómo exponer los tiempos de respuesta provisionales

Se expuso PerformanceResourceTiming.firstInterimResponseStart en los casos en que una navegación o recuperación de subrecursos encuentra una respuesta provisional 1xx. Por ejemplo, si hay 100 continuación o 103 sugerencias iniciales, firstInterimResponseStart ahora corresponde al momento de esa primera respuesta provisional, mientras que responseStart corresponde a la respuesta final, por ejemplo, con el estado 200.

Actualización del manejo del prefijo "xml" en lookupNamespaceURI() y createNSResolver()

De forma predeterminada, Node.lookupNamespaceURI() admite los prefijos "xml" y "xmlns". La función muestra strings de espacio de nombres fijas para ellos. Document.createNSResolver() y XPathEvaluator.createNSResolver() se detienen a fin de unir el nodo especificado para agregar el control de prefijo “xml”. Muestran el nodo especificado tal como está. Los desarrolladores web ahora pueden usar un elemento como XPathNSResolver sin unirlo con createNSResolver().

VisibilityStateEntry

Expone el estado de visibilidad (oculto o visible) en el cronograma de rendimiento. El cronograma siempre tendrá una entrada con un startTime de 0 y el estado de visibilidad inicial, además de las entradas correspondientes a cualquier cambio de estado de visibilidad.

WGSLLanguageFeatures para WebGPU

Agrega el método get wgslLanguageFeatures al objeto de GPU para WebGPU y su tipo WGSLLanguageFeatures correspondiente.

Comandos de WebDriver para interactuar con los diálogos de FedCM

Esto expone varios comandos de WebDriver para permitir la automatización del navegador, como las pruebas automatizadas, a fin de interactuar con los diálogos de FedCM.

Pruebas de origen en curso

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

Presión de procesamiento

La API de Compute Pressure ofrece información de alto nivel sobre el estado actual del hardware del dispositivo para permitir que los sitios encuentren el equilibrio adecuado para los usuarios entre aprovechar la potencia de procesamiento disponible y someter al sistema a un estrés inmanejable. La presión de procesamiento es un término genérico por diseño. Por el momento, se calcula en función de la carga de la CPU, pero los planes futuros incluyen, por ejemplo, el uso de indicadores de la temperatura y del estado de la batería. Obtén más información en Anuncia la segunda prueba de origen de presión de Compute.

Regístrate en la prueba de origen de presión de procesamiento.

Compila sugerencias explícitas con comentarios mágicos

Permitir adjuntar información sobre las funciones que se deben analizar y compilar con anticipación en archivos JavaScript La información se codificará como comentarios mágicos. Experimentaremos con distintos formatos de comentarios mágicos. Por ejemplo, marcando todas las funciones en un archivo para una compilación inmediata o marcando solo un subconjunto de funciones.

Regístrate para obtener sugerencias de compilación explícitas con la prueba de origen de los comentarios mágicos.

API de Long Animation Frames

Esta es una extensión de la API de Long Tasks. Mide la tarea junto con la actualización de la renderización posterior y agrega información como secuencias de comandos de larga duración, el tiempo de renderización y el tiempo dedicado al diseño y estilo forzados, lo que se conoce como hiperpaginación de diseños. Los desarrolladores pueden usar esto como diagnóstico de “lentitud”, que se mide con la Interacción a la siguiente pintura (INP), para descubrir las causas de la congestión del hilo principal, que suele ser la causa de un INP incorrecto.

Regístrate para la prueba de origen de Marcos de animación largos.

API de Storage Buckets

Con los buckets de almacenamiento, los sitios pueden crear varios buckets de almacenamiento para organizar sus datos, lo que permite que los usuarios-agentes borren cada bucket de forma independiente de los demás. Cada bucket de almacenamiento puede almacenar datos asociados con las APIs de almacenamiento establecidas, como IndexedDB y CacheStorage. Regístrate para la prueba de origen de la API de Storage Buckets.

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, se darán de baja dos funciones.

Dar de baja el método set document.domain

El método set de document.domain dejará de estar disponible porque permite a los desarrolladores flexibilizar la política del mismo origen y, por lo tanto, complica el límite de seguridad fundamental que queremos mantener y obstaculiza los cambios posteriores a Spectre en el modelo de proceso de Chromium. Consulta Chrome inhabilita la modificación de document.domain para ver alternativas al uso de document.domain. En la mayoría de los casos de uso, postMessage() de origen cruzado o la API de Channel Messaging pueden reemplazar document.domain. Como último recurso, puedes habilitar el dominio del documento mediante los clústeres de agentes con clave de origen. El método set permanecerá, pero el origen no se modificará.

Dar de baja los eventos de mutación

Los eventos de mutación, incluidos DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMNodeRemovedFromDocument y DOMNodeInsertedIntoDocument, dejaron de estar disponibles en la especificación en 2011 y se reemplazaron en 2012 por la API de Mutation Observer. El uso de los eventos de mutación obsoletos debe migrarse a Mutation Observer antes de quitarlos en Chrome 127 (20 de julio de 2024).

Obtén más información sobre la baja de los eventos de mutación.