Chrome 120 beta

El enmascaramiento de CSS, las reglas flexibilizadas para la anidación 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 mencionadas aquí a través de los vínculos proporcionados o en la lista en chromestatus.com. Chrome 120 está en versión beta a partir del 1 de noviembre 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

Esta versión agrega siete funciones nuevas de CSS.

Sintaxis de CSS <image> para las propiedades personalizadas registradas

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

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

Admite el uso de las sintaxis <transform-function> y <transform-list> para las 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 escritura de secuencias de comandos

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

Selector de seudoclase :dir()

El selector de seudoclases de CSS :dir() coincide con los elementos en función de la direccionalidad, que se determina según el atributo dir de HTML.

: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 elemento principal con el atributo dir y porque coincide con la dirección calculada a partir del uso de dir=auto (que determina la direccionalidad 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 los valores y las unidades de CSS de nivel 4.

Enmascaramiento 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) con el enmascaramiento o el recorte de 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).

Anidamiento de CSS relajado

Este cambio en la implementación del anidado de CSS permite que las reglas de estilo anidado comiencen con un elemento, por ejemplo, h1, en lugar de requerir el símbolo & al principio o unirse a 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 con el atributo de nombre en <details>

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

APIs web

Permitir la transferencia de ArrayBuffer a los constructores VideoFrame, AudioData, EncodedVideoChunk, EncodedAudioChunk y 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 terminaron de cargarse. Esto permite a los usuarios utilizar la fuente de manera segura sin activar posteriormente un reemplazo de fuentes.

Cerrar solicitudes y CloseWatcher

Las solicitudes de cierre son un concepto nuevo que abarca las solicitudes de los usuarios para cerrar un elemento abierto actualmente mediante la tecla Esc en una computadora de escritorio o el gesto de retroceso o el botón en Android. La integración de estas herramientas a Chrome incluye dos cambios:

  • CloseWatcher es una nueva API para escuchar directamente y responder solicitudes cerradas.
  • 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 del permiso del usuario para acceder a un sitio web o una aplicación (en este contexto conocido como usuario 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, el proveedor de identidad y los desarrolladores de RP pueden comprender mejor la UX de acceso y evaluar el rendimiento y las métricas de segmentos según corresponda.

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

Actualizaciones de funcionalidad de marcos protegidos

Hay una opción de formato adicional para las macros de tamaño de anuncio de Protected Audience en la API de Protected Audience, dentro de Privacy Sandbox. Una función de aceptación le permite usar macros para especificar en la URL del anuncio el tamaño del anuncio que gana la subasta, 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, agregaremos la capacidad de usar ${AD_WIDTH} y ${AD_HEIGHT} como formato para las macros, además del formato actual.

Las balizas automáticas ahora envían balizas automáticas a todas las URLs registradas. Anteriormente, solo los destinos especificados al llamar 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() para reserved.top_navigation recibirá una baliza automática, pero solo los destinos especificados en setReportEventDataForAutomaticBeacons() obtendrán datos automáticos de la baliza junto con la baliza. El parámetro once en setReportEventDataForAutomaticBeacons() ahora determinará si los datos se envían una vez, en lugar de determinar si la baliza completa se envía una vez.

Margen de desplazamiento del observador de la intersección

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

Informes de incumplimientos de la política de permisos

Esto integra la API de la política de permisos con la API de informes, lo que permite a los desarrolladores web configurar extremos a los que se enviarán informes de incumplimiento de la política de permisos, lo que permite a los propietarios de sitios ver 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), de modo que se puedan evaluar los cambios de la política en busca de posibles fallas antes de implementarlos en el modo normal de aplicación forzosa.

API de sesión multimedia: 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 pantalla en pantalla o pantalla en pantalla de documentos.

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

Compatibilidad con WebGPU f16

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

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

MediaCapabilities: Consulta la compatibilidad con HDR con decodingInfo()

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

Estadísticas de MediaStreamTrack (video)

Es una API que expone los contadores de fotogramas (entregados, descartados o totales) para los tipos de video de MediaStreamTracks. Las estadísticas de audio se cubrirán con el lanzamiento de una función independiente de Chrome.

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

Modificación de la API de Private Aggregation para proporcionar un mecanismo que permita seleccionar qué coordinador usar en la encriptación de la carga útil (de una lista de entidades permitidas que especifica 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 de las llamadas de Protected Audience runAdAuction() y joinAdInterestGroup(). El enfoque amplio se alinea en gran medida con el enfoque de la API de Attribution Reporting.

La API de estado de acceso en FedCM

La API de estado de acceso (anteriormente, API de estado de acceso de IdP) permite a los proveedores de identidad indicarle al navegador cuándo sus usuarios acceden o salen.

La plataforma la utiliza para abordar un ataque de sincronización silencioso y, al hacerlo, permite que funcione sin cookies de terceros.

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

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

Transiciones de vistas: cómo hacer que la devolución de llamada no sea anulable

Actualmente, la llamada a startViewTransition toma un tipo de devolución de llamada opcional anulable con un valor predeterminado nulo: startViewTransition(optional UpdateCallback? callback = null).

Esta función la cambia para que sea un tipo no anulable: startViewTransition(optional UpdateCallback callback).

Encapsulamiento de claves X25519Kyber768 para TLS

Protege el tráfico actual de TLS de Chrome contra el criptoanálisis cuántico futuro implementando el algoritmo de acuerdo de claves cuántico Kyber768. Este es un acuerdo de claves híbrido X25519 y Kyber768 basado en un estándar IETF. Esta especificación y lanzamiento están fuera del alcance de W3C. Este acuerdo clave 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.

Encabezado de la solicitud HTTP "prioridad"

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

El RFC 9218 (Esquema de priorización extensible para HTTP) define un encabezado de solicitud HTTP de "prioridad" que se usará para indicar la prioridad de la solicitud a los orígenes (y a los intermediarios). También define los procesos de negociación y los marcos 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 funcionar de extremo a extremo en los servidores de origen (y proporcionar un mecanismo para que el origen anule la prioridad si los intermediarios reconocen) mientras que los marcos se limitan a operar a nivel de los vínculos. Esta función es específica 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 (cookies y sin cookies) en un contexto de terceros.

Permiso de acceso a redes privadas para relajar el 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, una nueva función controlada por políticas para restringir el acceso de cada sitio a esta función y nuevos encabezados para la respuesta de solicitud 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ó 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 COOP/COEP para permitir pruebas de regresión y medir el impacto cuando no se puede implementar por completo COOP/COEP. Ten en cuenta que no se puede usar performance.memory (API heredada) con este fin, ya que nunca se habilitó en los trabajadores.

performance.measureUserAgentSpecificMemory()

La 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 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, una función deja de estar disponible.

Se dio de baja y se quitó la compatibilidad con Theora

Debido a los riesgos de seguridad emergentes, Chrome dejará de admitir el códec de video de Theora en Chrome para computadoras y se quitará la compatibilidad. El bajo uso de Theora (y, a menudo, incorrecto) ya no justifica la compatibilidad con la mayoría de los usuarios.

Esta versión de Chrome quita dos funciones.

Quitar datos: URL en SVGUseElement

Asignación de un dato: La URL en SVGUseElement puede causar XSS. Esto también provocó una omisión de Trusted Types. Por lo tanto, planeamos dar de baja y quitar la compatibilidad.

Se quitó la aplicación general del mismo origen en CSPEE

Quita un tratamiento especial para los iframes del mismo origen de la aplicación incorporada de CSP. De esta manera, se alinea el comportamiento de aplicar la aplicación forzosa de la CSP incorporada para los iframes de origen cruzado y los del mismo origen.