Chrome 120 beta

Enmascaramiento de CSS, reglas relajadas para el anidamiento de CSS, crear patrones de acordeón con el elemento <details>, la acción enterpictureinpicture para la API de Media Session

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 120 está beta desde el 1 de noviembre 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 siete funciones de CSS nuevas.

Sintaxis <image> de CSS para las propiedades personalizadas registradas

Admite el uso de la sintaxis <image> para las propiedades personalizadas registradas con @property o registerProperty(). Se puede usar la sintaxis <image> para restringir los valores de la propiedad personalizada a valores url() y, también, imágenes generadas, como gradientes.

Sintaxis de CSS <transform-function> y <transform-list> para las propiedades personalizadas registradas

Admite el uso de las sintaxis <transform-function> y <transform-list> para propiedades personalizadas registradas con @property o registerProperty().

La sintaxis se puede usar para restringir los valores de la propiedad personalizada a fin de representar las transformaciones. Esto también permite usar transiciones y animaciones directamente en estas propiedades personalizadas registradas.

Consultas de medios: función de creación de secuencias de comandos

La función multimedia de secuencias de comandos se usa para consultar si los lenguajes de programación, como JavaScript, son compatibles con el documento actual. Las opciones válidas son “habilitado”, “solo inicial” y “ninguno”. Sin embargo, “solo inicial” nunca coincide dentro de un navegador.

Selector de seudoclase :dir()

El selector de seudoclase de CSS :dir() hace coincidir elementos en función de la direccionalidad, que se determina en función del atributo HTML dir.

:dir(ltr) coincide con la direccionalidad del texto de izquierda a derecha. :dir(rtl) hace coincidir elementos con direccionalidad de texto de derecha a izquierda.

No es equivalente a los selectores de atributos [dir] porque coincide con las direcciones heredadas de un principal con el atributo dir y porque coincide con la dirección calculada a partir del uso de dir=auto (que determina la direccionalidad a partir del primer carácter del texto con una direccionalidad fuerte).

Funciones exponenciales de CSS

Agrega las funciones exponenciales de CSS: pow(), sqrt(), hypot(), log() y exp() de la especificación de valores y unidades de CSS del nivel 4.

Enmascaramiento de CSS

mask de CSS y las propiedades relacionadas, como mask-image y mask-mode, se usan para ocultar un elemento (de forma parcial o total) enmascarando o recortando la imagen en puntos específicos.

Esta función quita el prefijo de las propiedades de -webkit-mask* y las alinea con la especificación actual. Esto incluye mask-image, mask-mode, mask-repeat, mask-position, mask-clip, mask-origin, mask-size y mask-composite, así como la abreviatura mask. Se admiten referencias locales de mask-image, la serialización ahora coincide con la especificación y los valores aceptados ahora coinciden con la especificación (por ejemplo, add en lugar de source-over para mask-composite).

Anidación de CSS relajada

Este cambio en la implementación de anidamiento de CSS permite que las reglas de estilo anidadas comiencen con un elemento, por ejemplo, h1, en lugar de requerir el símbolo & al principio o que se unan con is(). El siguiente ejemplo ahora es válido en la especificación y funciona en Chrome 120.

.card {
  h1 {
    /* h1 does not start with a symbol */
  }
}

HTML

Patrón de acordeón usando el atributo de nombre en <details>

Esta función agrega la capacidad de construir acordeones mediante una secuencia de elementos HTML <details>. Este agrega un atributo de nombre al elemento <details>. Cuando se usa este atributo, varios elementos <details> que tienen el mismo nombre forman un grupo. Como máximo, un elemento del grupo puede abrirse a la vez.

API web

Se permite la transferencia de ArrayBuffer a los constructores VideoFrame, AudioData, EncodedVideoChunk, EncodedAudioChunk e ImageDecoder.

Esto permitirá desconectar los búferes de array y usar los búferes correspondientes dentro de VideoFrame, ImageDecoder, EncodedVideoChunk, EncodedAudioChunk y AudioData sin una copia.

API de carga de fuentes de CSS FontFaceSet: método check()

El método check() de FontFaceSet verifica si es posible mostrar texto con las fuentes especificadas sin intentar usar fuentes en FontFaceSet que no se terminaron de cargar. Esto permite a los usuarios emplear la fuente de manera segura sin activar un reemplazo posterior.

Cerrar solicitudes y CloseWatcher

Las solicitudes de cierre son un concepto nuevo que comprende las solicitudes de los usuarios para cerrar un elemento abierto actualmente, con la tecla Esc en una computadora de escritorio o el gesto o botón Atrás en Android. La integración de estos formatos en Chrome implica dos cambios:

  • CloseWatcher, una nueva API para escuchar directamente y responder a las solicitudes de cierre.
  • Se actualizaron a <dialog> y popover="" para usar el nuevo framework de solicitud de cierre de modo que respondan al botón Atrás de Android.

Trabajadores dedicados y API de Storage Access

Los trabajadores dedicados heredarán el estado de acceso al almacenamiento del contexto superior. Por lo tanto, si un documento obtiene acceso al almacenamiento a través de document.requestStorageAccess() y, luego, crea un trabajador dedicado, este también tendrá acceso al almacenamiento (y podrá acceder a cookies no particionadas).

FedCM: API de Error y API de AutoSelectedFlag

APIs dedicadas para ayudar a los desarrolladores y usuarios a comprender mejor el flujo de autenticación. Ambas APIs se activan después de que el usuario accede a un sitio web o una aplicación (en este contexto, conocido como parte de confianza [RP]) con un proveedor de identidad. En otras palabras, después de que el usuario hace clic en el botón Continuar como.

Con la API de Error, si falla el intento de acceso de un usuario, el proveedor de identidad puede compartir los motivos con el navegador para mantener actualizados a los usuarios y a los desarrolladores de RP.

Con la API de AutoSelectedFlag, tanto el proveedor de identidad como los desarrolladores de RP pueden comprender mejor la UX de acceso y evaluar las métricas de rendimiento y segmentación según corresponda.

Obtén más información en la entrada de blog de la FedCM Chrome 120.

Actualizaciones de la funcionalidad de Fenced Frames

Hay una opción de formato adicional para las macros de tamaño del anuncio de Protected Audience en la API de Protected Audience dentro de Privacy Sandbox. Una función de aceptación le permite utilizar macros para especificar el tamaño del anuncio que gana la subasta en la URL del anuncio, por ejemplo:

https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}

Para ser más coherentes con otros tipos de macros en Protected Audience, como las que usan deprecatedReplaceInURN y registerAdMacro(), en Chrome 120 agregamos la capacidad de usar ${AD_WIDTH} y ${AD_HEIGHT} como formatos de las macros, además del formato actual.

Las balizas automáticas ahora se enviarán a todas las URL registradas. Anteriormente, solo los destinos especificados cuando se llamaba a setReportEventDataForAutomaticBeacons() recibían balizas automáticas, incluso si ese destino llamaba a registerAdBeacon() para reserved.top_navigation en su worklet. Ahora, cualquier destino que llame a registerAdBeacon() por reserved.top_navigation recibirá una baliza automática, pero solo los destinos especificados en setReportEventDataForAutomaticBeacons() recibirán datos de la baliza automática junto con la baliza. Ahora, el parámetro once de setReportEventDataForAutomaticBeacons() determinará si los datos se envían una vez, en lugar de determinar si toda la baliza se envía una sola vez.

Margen de desplazamiento de Intersection Observer

Intersection Observer scrollMargin permite que los desarrolladores observen objetivos dentro de contenedores de desplazamiento anidados que actualmente están recortados por los contenedores de desplazamiento. Para ello, se debe expandir el rectángulo de recorte del contenedor mediante scrollMargin cuando se calcula la intersección.

Informes de incumplimiento de la política de permisos

Esto integra la API de la política de permisos con la API de Reporting, lo que permite a los desarrolladores web configurar los extremos a los que se enviarán los informes de incumplimiento de la política de permisos, lo que permite que los propietarios de los sitios vean cuándo se solicitan funciones no permitidas en sus páginas en el campo.

También incluye el encabezado Permissions-Policy-Report-Only, que permite enviar informes en función de una política propuesta (análoga a Content-Security-Policy-Report-Only) para que los cambios en la política puedan evaluarse en busca de posibles fallas antes de implementarlos de manera normal y de aplicación forzosa.

API de Media Session: acción enterpictureinpicture

Agrega una acción enterpictureinpicture a la API de Media Session. Los sitios web pueden registrar un controlador de acciones que se puede usar para abrir una ventana de pantalla en pantalla o de pantalla en pantalla en un documento.

Obtén más información en Pantalla en pantalla automática en apps web.

Compatibilidad con WebGPU f16

Permite el uso del tipo de punto flotante con precisión media f16 en sombreadores WebGPU (WGSL).

Los desarrolladores pueden usar el “shader-f16” de la especificación de WebGPU y “f16” extensión de la especificación de WGSL para acceder a variables de punto flotante de 16 bits y a las APIs en sus sombreadores.

MediaCapabilities: Consulta la compatibilidad con HDR con decodingInfo()

Extiende la API de Media Capabilities para permitir la detección de la compatibilidad con la renderización de HDR a través de tres campos de diccionario nuevos de VideoConfiguration: hdrMetadataType, colorGamut y transferFunction. Chrome implementa sus propios algoritmos de asignación de tonos, por lo que siempre mostrará el valor verdadero para los metadatos estáticos de HDR10 (smpteSt2086). Por el momento, los metadatos dinámicos HDR10+ (smpteSt2094-10) y Dolby Vision (smpteSt2094-40) no son compatibles, por lo que el resultado será falso. Anticipamos agregar compatibilidad con metadatos dinámicos en el futuro, por lo que esta API permitirá a los desarrolladores seleccionar el contenido apropiado para los usuarios que tengan compatibilidad.

Estadísticas de MediaStreamTrack (video)

Una API que expone contadores de fotogramas (entregados, descartados, totales) para MediaStreamTracks de los videos del mismo tipo. Las estadísticas de audio se incluirán en el lanzamiento de una función independiente de Chrome.

API de Private Aggregation: selección del coordinador de agregación

Modificación en la API de Private Aggregation para proporcionar un mecanismo a fin de seleccionar qué coordinador usar en la encriptación de la carga útil (desde una lista de entidades permitidas especificadas por el proveedor). La elección del servicio se realiza con una opción adicional en las llamadas de SharedStorage run() y selectURL(), y en las llamadas de Protected Audience runAdAuction() y joinAdInterestGroup(). El enfoque amplio se alinea en gran medida con el de la API de Attribution Reporting.

La API de estado de acceso en FedCM

La API de estado de acceso (antes conocida como API de estado de acceso del IdP) permite que los proveedores de identidad indiquen al navegador cuando sus usuarios acceden o salen de sus cuentas.

La FedCM utiliza esta información para abordar un ataque de tiempo silencioso y, al hacerlo, le permite funcionar sin cookies de terceros.

Es posible que esta API esté disponible para más casos de uso en el futuro.

Obtén más información en la entrada de blog sobre el anuncio.

Ver transiciones: hacer que la devolución de llamada no admita valores nulos

La llamada startViewTransition actualmente toma un tipo de devolución de llamada opcional que acepta valores nulos y tiene un valor predeterminado nulo: startViewTransition(optional UpdateCallback? callback = null).

Esta función cambia esto a un tipo no anulable: startViewTransition(optional UpdateCallback callback).

Encapsulamiento de claves X25519Kyber768 para TLS

Proteger el tráfico actual de TLS de Chrome del futuro criptoanálisis cuántico mediante la implementación del algoritmo de acuerdo de claves resistente a cuántico Kyber768 Este es un acuerdo de claves híbrido X25519 + KYber768 basado en un estándar IETF. Esta especificación y este lanzamiento están fuera del alcance de W3C. Este acuerdo de claves se lanzará como un algoritmo de cifrado TLS y debe ser transparente para los usuarios.

Pruebas de origen en curso

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

'prioridad' Encabezado de la solicitud HTTP

Esta función agrega el encabezado de solicitud priority a todas las solicitudes HTTP con la información de prioridad de la solicitud en el momento en que se envió.

RFC 9218 (esquema de priorización extensible para HTTP) define una “prioridad” Encabezado de la solicitud HTTP que se usará para indicar la prioridad de la solicitud a los orígenes (y 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 que las tramas están limitadas a operar a nivel de vínculo. Esta función es específicamente para admitir el esquema de priorización basado en encabezados.

Proponemos una extensión de la API de Storage Access (compatible con versiones anteriores) para permitir el acceso al almacenamiento no particionado (de cookies y sin cookies) en un contexto de terceros.

Permiso de Acceso a redes privadas para disminuir la rigurosidad del 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 política de un desarrollador o la intención de comunicarse con un dispositivo de este tipo, una nueva función controlada por políticas que restringe el uso de cada sitio acceso a esta capacidad y nuevos encabezados para la respuesta preliminar del servidor para proporcionar metadatos adicionales.

Regístrate en la prueba de origen del mensaje de permiso de acceso a redes privadas.

Acceso sin restricciones a performance.measureUserAgentSpecificMemory()

Se especificó el atributo performance.measureUserAgentSpecificMemory() para que solo esté disponible en entornos aislados de origen cruzado (detrás de COOP/COEP). Esta función quita la restricción de COOP/COEP para permitir pruebas de regresión y medición del impacto cuando no se puede implementar COOP/COEP por completo. Ten en cuenta que el rendimiento.memory (API heredada) no se puede usar para este propósito, ya que nunca se habilitó en los trabajadores.

performance.measureUserAgentSpecificMemory()

Esta función agrega una función performance.measureUserAgentSpecificMemory() que estima el uso de memoria de la página web. El sitio web debe estar aislado de origen cruzado para usar la API.

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.

Esta versión de Chrome da de baja una función.

Eliminación y baja de la compatibilidad con Theora

Chrome dejará de estar disponible y quitará la compatibilidad con el códec de video Theora en la versión de Chrome para computadoras debido a riesgos de seguridad emergentes. El bajo uso de Theora (y ahora a menudo incorrecto) ya no justifica la compatibilidad para la mayoría de los usuarios.

Esta versión de Chrome quita dos funciones.

Quitar datos: URL en SVGUseElement

Asignar datos: La URL en SVGUseElement puede causar XSS. Y esto también llevó a una omisión de Trusted Types. Por lo tanto, planeamos quitar su compatibilidad y darla de baja.

Eliminación de la aplicación general del mismo origen en CSPEE

Quita un tratamiento especial para los iframes del mismo origen de la aplicación forzosa de la CSP. Esto alinea el comportamiento de aplicación forzosa de la CSP incorporada en iframes de origen cruzado y del mismo origen.