Publicado: 16 de octubre de 2024
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 que se mencionan aquí a través de los vínculos proporcionados o de la lista en ChromeStatus.com. Chrome 131 es beta desde el 16 de octubre de 2024. Puedes descargar la versión más reciente en Google.com para computadoras o en Google Play Store para Android.
CSS
En esta versión, se agregan ocho funciones nuevas de CSS.
Posicionamiento de anclaje de CSS: anchor-scope
La propiedad anchor-scope permite limitar la visibilidad de los nombres de anclaje a un subárbol determinado.
CSS font-variant-emoji
La propiedad font-variant-emoji de CSS proporciona una forma de controlar los glifos de emoji coloreados (estilo emoji) y monocromáticos (estilo texto). Esto también se puede hacer agregando un selector de variantes de emoji, específicamente U+FE0E para texto y U+FE0F para emoji, después de cada punto de código de emoji.
Herencia de CSS Highlight
Con la herencia de CSS Highlight, las seudoclases de CSS Highlight, como ::selection y ::highlight, heredan sus propiedades a través de la cadena de seudodestacado en vez de hacerlo a través de la cadena de elementos. El resultado es un modelo más intuitivo para la herencia de propiedades en elementos destacados.
Para obtener más información, lee la entrada de blog Inheritance changes for CSS selection styling (Cambios en la herencia para el diseño de la selección de CSS) escrita por Stephen Chenney de Igalia.
Mejoras en la estructura de diseño de los elementos <details> y <summary>
Se admite más diseño de CSS para la estructura de los elementos <details> y <summary>, lo que permite que se usen en más casos en los que se crean widgets de divulgación o acordeón en la Web. En particular, este cambio quita las restricciones que impedían configurar la propiedad display en estos elementos y agrega un seudoelemento ::details-content para aplicar diseño al contenedor de la parte que se expande y se contrae.
Cajas de margen @page
Se agregó compatibilidad con los cuadros de márgenes de página cuando se imprime un documento web o se exporta como PDF.
Los cuadros de margen @page te permiten definir el contenido en el área de margen de una página, por ejemplo, para proporcionar encabezados y pies de página personalizados, en lugar de usar los encabezados y pies de página integrados que genera el navegador.
Un cuadro de margen se define con una regla @ dentro de una regla @page de CSS. La apariencia y el contenido de una caja de margen se especifican con propiedades de CSS dentro de la regla @, incluida la propiedad content. También se admiten contadores para la numeración de páginas. La especificación define dos nombres de contador especiales: page para el número de página actual y pages para la cantidad total de páginas.
Sintaxis de @property compatible con <string>
Se agregó compatibilidad con el nombre del componente de sintaxis <string> para las propiedades personalizadas registradas.
Se admite currentcolor en la sintaxis de color relativo
Permite que los colores relativos en CSS (con la palabra clave from) usen currentcolor como base. Esto te permite establecer colores complementarios, según el color de texto de un elemento, para los bordes, las sombras o los fondos de ese elemento.
Esta función también incluye casos de uso en los que las funciones de color se anidan con una dependencia de currentcolor, por ejemplo, color-mix(in srgb, rgb(from currentcolor r g b), white)) o rgb(from rgb(from currentcolor 1 g b) b g r).
Compatibilidad con recursos SVG externos para las propiedades clip-path, fill, stroke y marker-*
Esta función agrega compatibilidad con referencias externas para los trazados de recorte, los marcadores y los servidores de pintura (para las propiedades "fill" y "stroke"). Por ejemplo, clip-path: url("resources.svg#myPath").
API web
API de Direct Sockets
Permite que las apps web aisladas establezcan comunicaciones directas del protocolo de control de transmisión (TCP) y del protocolo de datagramas de usuario (UDP) con dispositivos y sistemas de red, así como escuchar y aceptar conexiones entrantes.
Exención del encabezado Speculation-Rules de las restricciones de la CSP
Se actualiza la integración entre las reglas de especulación y la CSP para que esta solo se aplique a <script type=speculationrules> y no al encabezado Speculation-Rules. Las políticas de CSP de secuencias de comandos están diseñadas para proteger contra la inyección de secuencias de comandos en HTML, y el modelo de amenazas de CSP no se relaciona con los encabezados HTTP. Esto permite una implementación más sencilla de las reglas de especulación desde las CDN y otros servidores perimetrales.
FedCM como indicador de confianza para la API de Storage Access
Concilia las APIs de FedCM y Storage Access haciendo que un otorgamiento previo de FedCM sea un motivo válido para aprobar automáticamente una solicitud de acceso al almacenamiento.
Cuando un usuario otorga permiso para usar su identidad con un proveedor de identidad (IdP) externo en una entidad externa (RP), muchos IdPs requieren cookies de terceros para funcionar de forma correcta y segura. Esta propuesta tiene como objetivo satisfacer ese requisito de forma privada y segura actualizando las verificaciones de permisos de la API de Storage Access (SAA) para que no solo acepten el otorgamiento de permisos que se proporciona en un mensaje de acceso al almacenamiento, sino también el otorgamiento de permisos que se proporciona en un mensaje de FedCM.
Una propiedad clave de este mecanismo es limitar el otorgamiento a los casos permitidos explícitamente por el RP con la política de permisos de FedCM, lo que aplica un control por frame para el RP y evita la vigilancia pasiva por parte del IdP más allá de las capacidades que ya otorga FedCM.
Valor de la COOP noopener-allow-popups
Algunos orígenes pueden contener diferentes aplicaciones con distintos niveles de requisitos de seguridad. En esos casos, puede ser beneficioso evitar que las secuencias de comandos que se ejecutan en una aplicación puedan abrir y crear secuencias de comandos en las páginas de otra aplicación del mismo origen.
En estos casos, puede ser beneficioso para un documento garantizar que su abridor no pueda ejecutar secuencias de comandos, incluso si el documento del abridor es del mismo origen. El valor noopener-allow-popups Cross-Origin-Opener-Policy permite que los documentos definan ese comportamiento.
API de Private Aggregation: Aumento del límite de contribución a 100 para los llamadores de Protected Audience
Permite que los ejecutores de secuencias de comandos de Protected Audience realicen hasta 100 contribuciones por informe de Agregación privada, en comparación con el límite actual de 20.
Private Aggregation limita la cantidad de contribuciones de histogramas que se pueden incorporar en un solo informe agregable y descarta las contribuciones adicionales. Los llamadores de Shared Storage pueden evitar el límite invocando otra operación de Shared Storage. Sin embargo, los llamadores de Protected Audience no tienen almacenamiento persistente, por lo que pierden sus contribuciones excedentes al final de la subasta. Ten en cuenta que este cambio no afecta la privacidad, ya que las contribuciones de la API siguen limitadas por el mismo presupuesto de privacidad.
Debido al padding, cada informe de Protected Audience tendrá una carga útil más grande, incluso si no necesitó el límite de contribución más grande. Esperamos que estos informes más grandes aumenten el costo de operar el Servicio de agregación.
Selecciona la relajación del analizador
Este cambio hace que el analizador de HTML permita etiquetas adicionales en <select>, además de <option>, <optgroup> y <hr>.
Este cambio es compatible con la función personalizable <select>, pero se envía primero porque se puede hacer por separado y tiene algunos riesgos de compatibilidad sobre los que el equipo de Chrome desea recibir comentarios.
WebGPU: Distancias de recorte
Se agregó la función de GPU opcional clip-distances que permite establecer distancias de recorte definidas por el usuario en los resultados del sombreador de vértices. Esta técnica es particularmente útil para las aplicaciones que necesitan recortar todos los vértices de una escena que se encuentran más allá de un plano definido por el usuario, como muchas aplicaciones de CAD.
WebGPU: GPUCanvasContext getConfiguration()
Una vez que se llamó a GPUCanvasContext configure() con un diccionario de configuración, puedes usar el método GPUCanvasContext getConfiguration() para verificar la configuración del contexto del lienzo. Incluye miembros de GPU device, format, usage, viewFormats, colorSpace, toneMapping y alphaMode.
Como se analizó en el problema 4828, las apps web pueden usarlo para detectar si se admite el lienzo HDR en WebGPU.
WebHID en trabajadores dedicados
Habilita WebHID en contextos de trabajadores dedicados. Esto te permite realizar operaciones de E/S y procesamiento de datos pesados desde un dispositivo HID en un subproceso independiente, lo que ayuda a reducir el impacto en el rendimiento del subproceso principal.
WebRTC RTCRtpEncodingParameters.scaleResolutionDownTo
Es una API que configura los codificadores de WebRTC para escalar los fotogramas de entrada si son mayores que los valores maxWidth y maxHeight especificados. Esta API es similar a scaleResolutionDownBy, excepto que las restricciones de resolución se expresan en términos absolutos (por ejemplo, 640 x 360) en lugar de términos relativos (por ejemplo, reducir en 2), lo que evita las condiciones de carrera relacionadas con el cambio del tamaño del fotograma de entrada sobre la marcha.
Nuevas pruebas de origen
En Chrome 131, puedes habilitar las siguientes pruebas de origen nuevas.
Estadísticas de reproducción de WebAudio
La función AudioContext.playoutStats permite que una aplicación mida la calidad y la latencia de la reproducción de audio con WebAudio.
API de Summarizer
Una API de JavaScript para producir resúmenes de texto de entrada, respaldados por un modelo de lenguaje de IA.
Bajas y eliminaciones
En esta versión de Chrome, se introducen las siguientes bajas y eliminaciones. Visita ChromeStatus.com para ver listas de las bajas planificadas, las bajas actuales y las eliminaciones anteriores.
En esta versión de Chrome, se quitaron tres funciones.
Quita la propiedad de posicionamiento de anclaje de CSS inset-area
Con la resolución del Grupo de trabajo de CSS sobre el cambio de nombre de la propiedad inset-area a position-area, esta eliminación limpia la implementación en Chromium para una función que cumple con los estándares.
Se quitó la capacidad de inhabilitar BeforeunloadEventCancelByPreventDefault
La función BeforeunloadEventCancelByPreventDefault se lanzó en Chrome 117, pero hay una política empresarial que permite inhabilitar esta marca de forma forzada. La política empresarial se quitará en Chrome 131.
Se quitó el método requestAdapterInfo() de GPUAdapter no estándar
El Grupo de trabajo de WebGPU decidió que no era práctico que requestAdapterInfo() activara un mensaje de permiso, por lo que quitó esa opción y la reemplazó por el atributo info de GPUAdapter para que los desarrolladores web puedan obtener el mismo valor de GPUAdapterInfo de forma síncrona.