Chrome 124 beta

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

CSS

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

CSSImportRule.styleSheet

Permite que CSSImportRule.styleSheet sea anulable. El atributo styleSheet de CSSImportRule puede ser nulo si no hay una hoja de estilo CSS asociada.

CSSKeyframesRule.length

Expone el atributo length de CSSKeyframesRule. Las interfaces que admiten propiedades indexadas deben definir un atributo de tipo número entero llamado length.

HTML

En esta versión se agregan dos funciones de HTML nuevas.

El atributo writingsuggestions

Los navegadores están comenzando a proporcionar sugerencias de escritura a los usuarios a medida que escriben en varios campos editables en toda la Web. Si bien esto suele ser útil para los usuarios, hay casos en los que los desarrolladores podrían querer desactivar la asistencia de escritura proporcionada por el navegador, como las extensiones o los sitios que proporcionan una funcionalidad similar propia.

El nuevo atributo writingsuggestions tiene valores true o false que permiten a los desarrolladores activar o desactivar las sugerencias de escritura proporcionadas por el navegador. El estado del atributo para un elemento también se puede heredar de elementos principales, lo que permite a los desarrolladores controlar esta funcionalidad a escala por elemento, por documento o subdocumento.

Contenedores de desplazamiento enfocables en el teclado

Mejora la accesibilidad, ya que hace que los contenedores de desplazamiento sean enfocables con la navegación con enfoque secuencial. Antes del cambio, la tecla de tabulación no enfocaba las desplazadores, a menos que tabIndex se establezca explícitamente en 0 o más.

Si permites que los desplazadores sean enfocables de forma predeterminada, los usuarios que no puedan (o no quieran) usar un mouse podrán enfocar el contenido recortado con las teclas de flecha y de tabulación del teclado. Este comportamiento se habilita solo si la barra de desplazamiento no contiene ningún elemento secundario enfocable del teclado.

Esta función se lanzará de forma gradual a partir de Chrome 124 y estará disponible para todos los usuarios a partir de Chrome 125. Obtén más información sobre los desplazamientos enfocables del teclado.

APIs web

Incorporaciones a la API de Attribution Reporting

Se agregaron funciones a la API de Attribution Reporting para crear capacidades de depuración adicionales, ya que admiten el análisis de informes de depuración de fallas, mejoran la ergonomía de la API mediante la compatibilidad con un campo para especificar la plataforma de registro preferida y mejoran la privacidad.

Pantalla en pantalla del documento: agrega una opción para ocultar el botón Volver a la pestaña.

De esta manera, se agrega un parámetro nuevo (disallowReturnToOpener) a la API de pantalla en pantalla del documento que, cuando se establece como verdadero, sugiere al navegador que no debería mostrar un botón en la ventana de pantalla en pantalla que le permita al usuario volver a la pestaña del abridor.

Si bien tener un botón para volver a la pestaña de apertura siempre tiene sentido en el caso de pantalla en pantalla (la transmisión de video por Internet se puede devolver al elemento de video en la pestaña de apertura), este no siempre es el caso de las experiencias de pantalla en pantalla de documentos. Esto les brinda a los desarrolladores más control sobre la experiencia del usuario cuando determinan que ese botón no tiene sentido para su caso de uso.

Obtén más información en la documentación sobre pantalla en pantalla en documentos.

Bloqueo de renderización de documentos

Esta función permite a los autores bloquear el procesamiento de un documento hasta que se haya analizado el contenido crítico, lo que garantiza una primera pintura coherente en todos los navegadores. Sin esta función, el estado del primer procesamiento de imagen depende de la heurística para obtener el rendimiento del analizador, que puede variar según el navegador.

Esto es particularmente importante para las transiciones de vistas, en las que el estado analizado del DOM del primer fotograma puede cambiar drásticamente la transición creada.

Ten en cuenta que esta función implementa una sintaxis <link rel=expect href="#id"> que permite que un elemento de vínculo haga referencia a otro elemento esperado de la página. Luego, se bloquea la renderización hasta que se analice por completo el elemento esperado. Esta opción reemplaza la implementación anterior de un atributo HTML que permite que se bloquee la renderización de todo el documento.

Atributo jitterBufferTarget

El atributo jitterBufferTarget permite que las aplicaciones especifiquen una duración objetivo en milisegundos de contenido multimedia para que se mantenga el búfer de jitter RTCRtpReceiver. Esto influye en la cantidad de almacenamiento en búfer que realiza el usuario-agente, lo que, a su vez, afecta las retransmisiones y la recuperación de pérdida de paquetes. Modificar el valor objetivo permite que las aplicaciones controlen la compensación entre la demora en la reproducción y el riesgo de quedarse sin fotogramas de audio o video debido al jitter de la red.

pageswap evento

El evento pageswap se activa en el objeto de ventana de un documento cuando una navegación reemplaza este documento por uno nuevo. El evento proporciona información de activación sobre la navegación (type, NavigationHistoryEntry para el documento nuevo).

Si la navegación tiene una transición de vista entre documentos, el evento se despacha antes de capturar el estado del documento anterior. Esto permite al desarrollador configurar el estado anterior capturado para la transición según la información de activación de la navegación y el estado visual actual del documento anterior.

Encabezado de la solicitud HTTP priority

De esta manera, se agrega el encabezado de la solicitud priority para todas las solicitudes HTTP con la información de prioridad correspondiente a la solicitud en el momento en que se envió.

RFC 9218 (Esquema de priorización extensible para HTTP) define un encabezado de solicitud HTTP priority que se usará para indicar la prioridad de las solicitudes a los orígenes (y a los intermediarios). También define los procesos de negociación y las tramas a nivel de protocolo para que HTTP/2 y HTTP/3 lleven la misma información de prioridad.

El encabezado solo puede indicar la prioridad inicial de un recurso cuando se solicitó por primera vez, mientras que los mecanismos basados en marcos permiten modificar la prioridad después del hecho.

El encabezado puede operar de extremo a extremo en los servidores de origen (y proporcionar un mecanismo para que el origen anule la prioridad si los intermediarios lo reconocen) mientras las tramas se limitan a operar a nivel de vínculo.

Esta función es específicamente para admitir el esquema de priorización basado en encabezados.

Permiso de acceso a redes privadas para relajar contenido mixto

Para establecer conexiones con dispositivos en una red local que no tienen nombres únicos a nivel global y, por lo tanto, no pueden obtener certificados TLS, esta función presenta una nueva opción en fetch() para declarar la intención de un desarrollador de comunicarse con ese dispositivo. Esto incluye una nueva función controlada por políticas para restringir el acceso de cada sitio a esta función, además de encabezados nuevos para la respuesta preliminar del servidor que proporcionan metadatos adicionales.

Sugerencia para el cliente de Sec-CH-UA-Form-Factors

Esta sugerencia le proporciona al servidor información sobre los factores de forma del usuario-agente. Muestra uno o más de los siguientes valores de factor de forma:

  • Computadoras de escritorio: Un usuario-agente que se ejecuta en una computadora personal.
  • Automotriz: Un usuario-agente incorporado en un vehículo, en el que puede ser responsable de operar el vehículo y no poder prestar atención a pequeños detalles.
  • Dispositivo móvil: Es un dispositivo pequeño y orientado al tacto que, por lo general, se lleva a la persona del usuario.
  • Tablet: Es un dispositivo táctil más grande que "Dispositivo móvil" y que no suele llevarse en la persona del usuario.
  • XR: Dispositivos envolventes que aumentan o reemplazan el entorno que rodea al usuario.
  • EInk: Es un dispositivo que se caracteriza por actualizaciones lentas de pantalla y una resolución de color limitada o nula.
  • Reloj: Es un dispositivo móvil con una pantalla pequeña (generalmente, de menos de dos pulgadas) que se lleva a cabo de modo que el usuario pueda mirarla rápidamente.

setHTMLUnsafe y parseHTMLUnsafe

Los métodos setHTMLUnsafe y parseHTMLUnsafe permiten que se use el Shadow DOM declarativo desde JavaScript. Estos métodos también ofrecen una forma más fácil de analizar HTML de forma imperativa en DOM, en comparación con innerHTML o DOMParser.

Actualizaciones a la API de Shared Storage

Esta actualización agrega compatibilidad para ejecutar trabajos de origen cruzado sin tener que crear un iframe.

API de Streams: Iteración asíncrona de ReadableStream

Las APIs de transmisiones proporcionan primitivas interoperables y ubicuas para crear, componer y consumir flujos de datos. Este cambio agrega compatibilidad con el protocolo iterable asíncrono de la API de ReadableStream, lo que permite que las transmisiones legibles se usen como fuente de bucles await...of.

SVG context-fill y context-stroke

Implementa una función de SVG existente que permite las palabras clave context-fill y context-stroke cuando se especifican propiedades de relleno y trazo. Esto solo afecta a los subárboles SVG que se crean con un elemento <use> y a los elementos <marker> para los que se crea una instancia con la propiedad marker en un elemento <path>. En esas circunstancias, context-fill y context-stroke se resuelven en el valor de las propiedades fill y stroke en <use> o <path>.

WebGPU: Compatibilidad con ServiceWorker y SharedWorker

Se agregó compatibilidad con ServiceWorker y SharedWorker a la WebGPU, de acuerdo con las capacidades existentes de WebGL.

Los service workers habilitan las capacidades sin conexión y el procesamiento en segundo plano para la WebGPU. Esto significa que las aplicaciones web con alto contenido gráfico o las extensiones de Chrome pueden almacenar recursos en caché y realizar cálculos, incluso cuando el usuario no está interactuando de manera activa con la página.

Los trabajadores compartidos permiten varias pestañas o contextos de extensión para coordinar y compartir los recursos de WebGPU. De esta manera, se brinda un rendimiento más fluido y un uso más eficiente del hardware gráfico del usuario.

La API de WebSocketStream

La API de WebSocket proporciona una interfaz de JavaScript para el protocolo de WebSocket RFC6455. Si bien funcionó bien, es incómodo desde el punto de vista de la ergonomía y le falta la función importante de la contrapresión. La intención de la API de WebSocketStream es resolver estas deficiencias mediante la integración de transmisiones de WHWG con la API de WebSocket.

Obtén más información en WebSocketStream: integra transmisiones con la API de WebSocket.

Encapsulamiento de claves X25519Kyber768 para TLS

Protege el tráfico actual de TLS de Chrome contra el criptoanálisis cuántico futuro mediante la implementación del algoritmo de acuerdo de claves cuántico Kyber768.

Este es un acuerdo clave híbrido X25519 y Kyber768 basado en un estándar IETF. La especificación y el lanzamiento están fuera del alcance de W3C. Este acuerdo de claves se lanzará como un algoritmo de cifrado de TLS y debe ser transparente para los usuarios.

Obtén más información en el artículo sobre protección del tráfico de Chrome con Kyber KEM híbrido.

Pruebas de origen en curso

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

Prueba de baja para eventos de mutación

Los eventos de mutación, incluidos DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMNodeRemovedFromDocument, DOMNodeInsertedIntoDocument y DOMCharacterDataModified, pueden dañar el rendimiento de la página y aumentar de manera significativa la complejidad de agregar funciones nuevas a la Web. Estas APIs dejaron de estar disponibles en la especificación en 2011 y se reemplazaron (en 2012) por la API de Mutation Observer, cuyo comportamiento es mucho mejor.

La compatibilidad con eventos de mutación se inhabilitará de forma predeterminada a partir de Chrome 127, alrededor del 30 de julio de 2024. El código debe migrarse a la API de Mutation Observer antes de esa fecha para evitar fallas en el sitio. Si necesitas más tiempo, regístrate en la prueba de baja de los eventos de mutación para volver a habilitar la función durante un tiempo limitado en un sitio determinado. Se puede usar hasta Chrome 134, que finaliza el 25 de marzo de 2025.

Como alternativa, también se puede usar una política empresarial MutationEventsEnabled para el mismo propósito, también a través de Chrome 134.

Regístrate para la prueba de baja de los eventos de mutación.

Bajas y eliminaciones

Esta versión de Chrome incluye las siguientes bajas y eliminaciones. Visita ChromeStatus.com para ver una lista de las bajas planificadas, las bajas actuales y las eliminaciones anteriores.

Esta versión de Chrome quita una función.

Se quitó el alias "window-placement" para los permisos y la política de permisos "window-management".

Se quitó el alias "window-placement" para los permisos y la política de permisos "window-management". Esto forma parte de un esfuerzo mayor para cambiar el nombre de las strings. Para ello, se dará de baja y se quitará "window-placement". El cambio de terminología mejora la longevidad del descriptor a medida que evoluciona la API de Window Management con el tiempo.