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í en los vínculos proporcionados o en la lista en ChromeStatus.com. Chrome 121 estará en fase beta a partir del 6 de diciembre de 2023. Puedes descargar la versión más reciente en Google.com para computadoras o en Google Play Store para Android.
CSS
Esta versión agrega seis funciones nuevas de CSS.
Herencia de elementos destacados de CSS
Con la herencia de destacado de CSS, las seudoclases de esos elementos, como ::selection
y ::highlight
, heredan sus propiedades a través de la cadena de seudo destacado, en lugar de la cadena de elementos. El resultado es un modelo más intuitivo para la herencia de propiedades en aspectos destacados.
Esto implementará el requisito de la especificación de seudos niveles de CSS 4:
"Cuando la cascada no le da un valor a ninguna propiedad compatible ... su valor especificado se determina por herencia a partir del seudoelemento destacado correspondiente del elemento principal del elemento de origen".
Barras de desplazamiento de CSS: scrollbar-color
y scrollbar-width
La especificación de las barras de desplazamiento de CSS permite a los desarrolladores definir el estilo de las barras de desplazamiento especificando sus colores y grosor. En esta especificación, se agregan las dos propiedades siguientes. La propiedad scrollbar-color
permite cambiar el esquema de colores de las barras de desplazamiento para que se ajusten mejor al estilo particular de una página web. La propiedad scrollbar-width
permite el uso de barras de desplazamiento más estrechas que pueden ser más adecuadas para algunos casos de uso, o incluso para ocultar las barras por completo sin afectar la capacidad de desplazamiento.
Animación de CSS font-palette
para fuentes de color
La propiedad font-palette
de CSS permite seleccionar una paleta específica utilizada para renderizar una fuente de color. Con la compatibilidad recientemente agregada para animar esta propiedad, la transición entre paletas ya no es un paso discreto, sino que se convierte en una transición fluida entre dos paletas seleccionadas. Esto funciona en todas partes en animaciones y transiciones CSS.
Funciones de ortografía y gramática de CSS
CSS destaca pseudoelementos para dar estilo al texto que el usuario-agente marcó como mal escrito o gramaticalmente incorrecto, y las decoraciones de líneas que exponen las decoraciones predeterminadas del usuario-agente para errores de ortografía y gramática. Estas funciones permiten a los desarrolladores elegir colores más legibles para los errores ortográficos y gramaticales predeterminados, destacar las palabras mal escritas con colores de fondo u otras decoraciones, e implementar un corrector ortográfico personalizado que se adapte a la experiencia del dispositivo.
Máscara de CSS mejorada para SVG
Este es un seguimiento de la compatibilidad mejorada de las máscaras CSS en Chrome 120, en la que se agregó compatibilidad nueva con las máscaras SVG (varias máscaras, además de mask-mode
, mask-composite
, mask-position
y mask-repeat
). Además, ahora se admiten máscaras SVG remotas (por ejemplo, mask: url(masks.svg#star)
).
Valores de visualización específicos de Ruby
Se agregan nuevos valores de propiedades de visualización de CSS, ruby
y ruby-text
. Los valores de visualización predeterminados de <ruby>
y <rt>
se cambian a ruby
y ruby-text
respectivamente, y el diseño rubí respeta esos valores de visualización. Los autores web pueden configurar los nuevos valores de visualización para usar cualquier elemento, como <div>
, para renderizar Ruby.
APIs web
Paquete de funciones de Informes de atribución: Demoras agregadas reducidas, campo Épsilon del informe a nivel del evento, claves reservadas
Chrome incluye cambios en la API de Attribution Reporting enfocados en lo siguiente:
- Reducir la pérdida de transmisión gracias a la reducción de retrasos en los informes agregados
- Configuración adicional de la API mediante la compatibilidad con un campo épsilon de informes a nivel del evento
- Se mejoró la extensibilidad de la API mediante la falla de registros cuando se encuentran claves reservadas.
API de notRestoredReason en la memoria caché atrás/adelante
La API de notRestoredReason informará la lista de motivos por los que no se entrega una página desde bfcache mediante la API de PerformanceNavigationTiming.
Cómo requerir gestos del usuario para cambiar el tamaño de las APIs en el modo de pantalla en pantalla de Documentos
Esto habilita los métodos resizeBy()
y resizeTo()
en las ventanas de pantalla en pantalla del documento, pero con la restricción adicional de un requisito de gestos del usuario para mitigar el potencial de abuso.
API de EditContext
La API de EditContext simplifica el proceso de integración de una app web con métodos de entrada de texto avanzados, como la escritura de forma de VK, los paneles de escritura a mano, el reconocimiento de voz y las composiciones de IME. Mejora la accesibilidad y el rendimiento, y ofrece funciones nuevas para editores basados en la Web.
Detección de atributos para formatos de portapapeles compatibles
Ahora puedes verificar si la API de Async Clipboard admite un tipo de MIME determinado llamando a la nueva función supports()
y pasando el tipo de MIME como argumento, por ejemplo, ClipboardItem.supports('image/png')
.
HTMLSelectElement showPicker()
El método showPicker()
de HTMLSelectElement ofrece a los desarrolladores una manera de abrir de manera programática el selector de opciones de un elemento <select>
siguiendo el patrón de input.showPicker()
.
MediaCapabilities: Cómo consultar 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 mediante tres nuevos campos del diccionario VideoConfiguration: hdrMetadataType, colorGamut y transferFunction.
Chromium implementa sus propios algoritmos de asignación de tonos, por lo que siempre se mostrará el valor "true" para los metadatos estáticos de HDR10 (smpteSt2086). Por el momento, los metadatos dinámicos smpteSt2094-40 (HDR10+) y smpteSt2094-10 no son compatibles, por lo que se mostrará un valor falso.
API de Private Aggregation: Selección del coordinador de agregación
Esta modificación de la API de Private Aggregation proporciona un mecanismo para seleccionar qué coordinador usar para la encriptación de la carga útil (de una lista de entidades permitidas especificada por el proveedor). La elección del servicio se realiza con una opción adicional en las llamadas run()
y selectURL()
del almacenamiento compartido y en las llamadas runAdAuction()
y joinAdInterestGroup()
de Protected Audience. El enfoque amplio se alinea en gran medida con el de la API de Attribution Reporting.
API de reproducción remota en computadoras de escritorio
Esta API extiende el HTMLMediaElement
que permite controlar la reproducción remota de contenido multimedia desde una página web. Esto se envió en Android en Chrome 56 y está disponible para computadoras a partir de Chrome 121.
API de Speculation Rules
Hay funciones nuevas para la API de Speculation Rules.
Compatibilidad con reglas de documentos: Es una extensión de la sintaxis de reglas de especulación que permite al navegador obtener la lista de URLs para la carga especulativa de elementos <a>
de una página. Pueden incluir criterios para determinar cuál de estos vínculos pueden utilizarse. Esto, junto con un nuevo campo "eagerness" para reglas de especulación, les permite a los desarrolladores cargar previamente o preprocesar vínculos de las páginas de forma automática, al colocar el cursor sobre un elemento o presionarlo con el mouse.
Un cambio independiente permite especificar reglas de especulación con el encabezado de respuesta HTTP Speculation-Rules
como alternativa al uso de elementos <script>
intercalados. El valor de este encabezado debe ser una URL que dirija a un recurso de texto con el tipo de MIME "application/speculationrules+json"
. Las reglas del recurso se agregarán al conjunto de reglas del documento.
Por último, la sugerencia No-Vary-Search
permite que las cargas previas especulativas coincidan incluso si cambian los parámetros de consulta de la URL. El encabezado de respuesta HTTP No-Vary-Search
declara que algunas o todas las partes de la consulta de una URL pueden ignorarse para fines de coincidencia. Puede declarar que el orden de las claves de los parámetros de consulta no debe evitar las coincidencias, que los parámetros específicos no deben evitar las coincidencias o que solo ciertos parámetros de consulta conocidos deben causar discrepancias.
Objetos de interfaz SpeechSynthesis y SpeechSynthesisVoice
Agrega los objetos de interfaz para SpeechSynthesis
y SpeechSynthesisVoice
, a las funciones ya compatibles. Esto hace posible la detección de características mediante SpeechSynthesisVoice.prototype.
API de Storage Buckets
Con los buckets de almacenamiento, los sitios pueden organizar los datos del dispositivo en “buckets” separados, lo que permite que los usuarios-agentes expulsen los datos agrupados independientemente de los que se encuentran en otros buckets, y que los sitios administren de forma ergonómica los datos relacionados semánticamente. Cada bucket de almacenamiento puede contener datos asociados con las APIs de almacenamiento establecidas, como IndexedDB y CacheStorage.
URLPattern: Heredar izquierdo, comodín derecho
Cambios de comportamiento en patrones que se construyen con una URL base, la sintaxis de cadena del constructor o ambas, pero no cualquier patrón que especifique explícitamente los componentes por separado sin una URL base.
Los componentes no se heredan de una URL base si se especifica explícitamente un componente "anterior". En el formato de string, los componentes “más adelante” no especificados se incluyen como comodín de forma implícita, en lugar de que estén vacíos (excepto el puerto, que siempre se debe especificar cuando está el nombre de host). El nombre de usuario y la contraseña nunca se especifican ni se heredan de manera implícita.
Esto hace que los patrones sean más amplios que antes, en casos en los que probablemente sea conveniente usar comodines.
URLPattern: La marca RegExp v
en lugar de u
La API de URL Pattern permite que los desarrolladores especifiquen cadenas de patrones. que se transforman en expresiones regulares internamente.
Cuando se implementó la API por primera vez, estas expresiones regulares se compilaron con la marca u
. Chrome 121 la actualiza a la marca v
, lo que habilita los conjuntos de Unicode.
Adiciones a WebGPU
WebGPU ahora permite a los desarrolladores omitir los puntos de entrada a los módulos sombreadores cuando crean una canalización, lo que mejora la ergonomía. Si no se encuentra un punto de entrada predeterminado, se activará un GPUValidationError como de costumbre.
Las consultas de marca de tiempo de WebGPU permiten que las aplicaciones de WebGPU midan con precisión (hasta nanosegundos) cuánto tiempo tardan en ejecutarse sus comandos de GPU, especialmente al comienzo y al final de los pases. Las consultas con marca de tiempo se usan en gran medida para obtener estadísticas sobre el rendimiento y el comportamiento de las cargas de trabajo de GPU.
Si bien la especificación de WebGPU hace que las consultas de marcas de tiempo sean una función opcional debido a las inquietudes relacionadas con los ataques de tiempo, creemos que la cuantización de las consultas por marca de tiempo proporciona un buen punto medio, ya que reduce la precisión de los cronómetros con una resolución de 100 microsegundos.
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 clave híbrido X25519 + 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.
Pruebas de origen en curso
En Chrome 121, puedes habilitar las nuevas pruebas de origen que se detallan a continuación.
La API de Element Capture
La API de Element Capture proporciona métodos para capturar un subárbol del DOM.
Dado un MediaStreamTrack de video obtenido a través de medios preexistentes para iniciar la captura de pestañas, Element Capture permite mutar la pista para capturar solo un subárbol del DOM a partir de un Element determinado.
La API se parece algo a la API de Region Capture, pero ofrece una mayor flexibilidad para las aplicaciones, ya que tanto el contenido oculto como el contenido oculto se excluyen de la captura.
Regístrate para la prueba de origen de ElementCapture
Cambios en el comportamiento existente
Chrome 121 incluye el siguiente cambio en el comportamiento existente, que se incluye aquí para que los desarrolladores estén al tanto de este cambio .
Descartar eventos de entrada a Iframes de origen cruzado que se trasladaron recientemente
Si un iframe de origen cruzado se movió recientemente dentro de su página de incorporación, Chrome descartará sin aviso los eventos que se orienten al iframe. La razón es que, si el iframe se movió recientemente, es probable que el usuario no haya tenido la intención de hacer clic en él ni presionarlo.
Este cambio se envió de forma limitada en 2019: solo afectó a los iframes que contenían secuencias de comandos que usaban funciones de la versión 2 de IntersectionObserver (es decir, oclusión o detección de efectos). Con este lanzamiento, se expande este comportamiento a todos los iframes de origen cruzado y, luego, se iniciará un experimento limitado en Chrome 121.