Google ha publicado la versión del navegador web Chrome 124. Al mismo tiempo, está disponible la versión estable del proyecto de código abierto Chromium, que sirve como base para Chrome. El navegador Chrome se diferencia de Chromium en el uso de logotipos de Google, la presencia de un sistema de notificación en caso de fallos, módulos para la reproducción de contenido de video protegido (DRM), un sistema de actualización automática, la inclusión constante de aislamiento Sandbox, la provisión de claves para Google API y la transmisión de parámetros RLZ durante la búsqueda. Para aquellos que necesitan más tiempo para actualizar, hay una rama Extended Stable que se mantiene durante 8 semanas. La siguiente versión de Chrome 125 está programada para el 14 de mayo.
Principales cambios en Chrome 124:
- En la versión para la plataforma Android, el administrador de marcadores ha añadido soporte para guardar marcadores y listas de lectura pendientes en como en entornos de nube públicos o privados. Google enlazado a la cuenta de usuario.
- En Chrome para Android se ha implementado un nuevo método para almacenar contraseñas locales, que no se sincronizan con otros dispositivos. Anteriormente, las contraseñas locales se almacenaban en el perfil de Chrome, pero ahora se ubicarán en el almacén de contraseñas proporcionado por los servicios de Google Play, que ya se usa para almacenar la contraseña de la cuenta de Google.
- En las versiones para Windows, macOS y Linux, se ha habilitado por defecto el soporte para el mecanismo de encapsulación de claves (KEM, Key Encapsulation Mechanism) en TLS, que utiliza el algoritmo híbrido X25519Kyber768, resistente a ataques en computadoras cuánticas. X25519Kyber768 es una combinación del mecanismo de intercambio de claves X25519, basado en curvas elípticas y actualmente utilizado en TLS, con el algoritmo Kyber-768, que usa métodos criptográficos basados en problemas de teoría de retículas, cuyas soluciones no difieren en computadoras convencionales y cuánticas.
- Al dibujar texto, la biblioteca Skia ha considerado la configuración de contraste y color en Windows para la tecnología de suavizado de texto ClearType, lo que permite mejorar significativamente la calidad de visualización de fuentes en monitores de cristal líquido. En las versiones para Linux, las fuentes utilizadas en la interfaz han cambiado notablemente.

- Se ha proporcionado la posibilidad de instalar cualquier página web como una aplicación PWA autosuficiente (Progressive Web Apps), incluso si esa página no cumple con los criterios de PWA.
- De acuerdo con los requisitos de la legislación europea DMA (Digital Markets Act), se ha habilitado un diálogo para seleccionar el motor de búsqueda que se utilizará por defecto. Se ofrecen motores de búsqueda disponibles en la sección de configuración «chrome://settings/search». Los motores de búsqueda en la lista se muestran en un orden aleatorio. En Chrome 120, este diálogo se probó con el 1% de los usuarios y ahora se ha activado para todos.

- Se ha implementado la presentación al usuario de una solicitud de autorización cuando una aplicación web accede a la API Web MIDI, que permite interactuar con dispositivos musicales conectados al ordenador que cuentan con interfaz MIDI. Anteriormente, las solicitudes de autorización solo se mostraban al enviar o recibir mensajes SysEx, y ahora se mostrarán con cualquier acceso a la API Web MIDI. Se mencionan situaciones en las que páginas web aleatorias toman el control exclusivo del controlador MIDI, bloqueando el uso de este por otras aplicaciones. También se mencionan problemas de seguridad, ya que la API Web MIDI permite el control total del dispositivo MIDI, incluso hasta la instalación de su firmware.
- Se ha descontinuado por completo el soporte de la API Web SQL, que no está estandarizada, se utiliza muy poco y necesita ser revisada para cumplir con los requisitos de seguridad modernos. Web SQL fue deshabilitado por defecto a partir de Chrome 119, pero había una configuración para volver a habilitarlo. Ahora esta configuración ha sido eliminada. Para los desarrolladores que necesiten tal funcionalidad, se les sugiere usar una variante de la biblioteca SQLite, compilada en un formato WebAssembly.
- Se ha añadido la posibilidad de controlar la dirección de escritura del texto mostrado verticalmente en los elementos de formularios web (select, meter, progress, button, textarea e input) al elegir la orientación vertical a través de la propiedad CSS writing-mode. Para mostrar el texto de arriba hacia abajo, ahora se puede usar la propiedad del elemento de formularios «ltr», y de abajo hacia arriba — «rtl».
- En la API de User-Agent Client Hints, desarrollada como un reemplazo del encabezado User-Agent, se ha añadido soporte para el parámetro Sec-CH-UA-Form-Factors, a través del cual el cliente puede informar al servidor sobre el factor de forma del dispositivo del usuario (Escritorio, Automoción, Móvil, XR, EInk y Reloj). User-Agent Client Hints permite organizar una entrega selectiva de datos sobre parámetros específicos del navegador y el sistema (versión, plataforma, etc.) solo después de una solicitud. el servidorEl usuario, a su vez, puede definir qué información se puede proporcionar a los propietarios de sitios web. Al usar User-Agent Client Hints, el identificador del navegador no se transmite sin una solicitud explícita, y por defecto solo se indican los parámetros básicos, lo que dificulta la identificación pasiva.
- Se ha añadido la posibilidad de gestionar la clonación de raíces individuales en el Shadow DOM, llevada a cabo por comandos como cloneNode(). La posibilidad de clonar ramas raíz del DOM se activa mediante el parámetro clonable (‘attachShadow({clonable:true})’) o el atributo ‘shadowrootclonable’ (<template shadowrootmode=open shadowrootclonable>).

- Se han añadido nuevos métodos setHTMLUnsafe() y parseHTMLUnsafe() para utilizar la sintaxis del Shadow DOM desde JavaScript. Los métodos setHTMLUnsafe() y parseHTMLUnsafe(), al igual que innerHTML y DOMParser.parseFromString(), permiten insertar en un elemento o descomponer contenido en formato HTML, pero difieren en el soporte para el procesamiento de elementos template con el atributo shadowrootmode.
- Se ha añadido soporte para la API WebSocket Stream, que permite transmitir datos entre el navegador y el servidor de manera continua sin polling (sondeo), lo que es óptimo para organizar la transmisión y recepción de datos que llegan constantemente, como en la implementación de un chat. const wss = new WebSocketStream(WSS_URL); const {readable, writable} = await wss.opened; const reader = readable.getReader(); const writer = writable.getWriter(); while (true) { const {value, done} = await reader.read(); if (done) { break; } const result = await process(value); await writer.write(result); }
- Se han ampliado las capacidades de la API de View Transitions, que facilita la creación de efectos de animación de transición entre diferentes estados del DOM (por ejemplo, una transición suave de una imagen a otra). En la nueva versión se ha añadido soporte para el evento ‘pageswap’, que se genera para el objeto ‘window’ cuando, al navegar, el objeto ‘document’ asociado se reemplaza por uno nuevo. También se ha añadido la propiedad ‘render-blocking’, que permite bloquear el renderizado del documento hasta que se complete el análisis del contenido importante.
- Se ha añadido el parámetro disallowReturnToOpener, que se pasa al invocar el método requestWindow, permitiendo quitar el botón «atrás» en la ventana abierta en modo «imagen en imagen», para impedir volver a la pestaña desde la que se abrió la ventana.
- Se ha añadido la posibilidad de asignar el valor NULL al atributo CSSImportRule.styleSheet para indicar la ausencia de una hoja de estilos vinculada. Se ha añadido el atributo CSSKeyframesRule.length, que indica el número de propiedades indexables.
- Para los campos editables, se ha implementado el atributo «writingsuggestions» para gestionar la inclusión de recomendaciones durante la entrada.
- En la API WebGPU se ha añadido soporte para ServiceWorker y SharedWorker.
- Se ha añadido soporte para el encabezado HTTP «Priority», a través del cual se pueden transmitir detalles sobre la prioridad de procesamiento de la solicitud (RFC 9218) en la etapa inicial de acceso al recurso.
- Se han realizado mejoras en las herramientas para desarrolladores web. Se ha añadido un nuevo panel Autofill para inspeccionar la información utilizada al completar formularios automáticamente.

En el panel de inspección de estilos CSS, se ha mejorado el soporte para estilos anidados. En el panel de medición de rendimiento, se ha proporcionado la opción de ocultar funciones innecesarias y las llamadas secundarias relacionadas para reducir el ruido en el gráfico. En el panel de depuración de animaciones, se ha añadido soporte para animaciones vinculadas al desplazamiento de contenido (Scroll-driven Animation). En el panel de inspección de la red, se ha implementado la posibilidad de establecer parámetros de pérdida de paquetes y tamaño de cola de red para probar aplicaciones WebRTC en condiciones de problemas de red.

Además de las nuevas características y correcciones de errores, la nueva versión ha solucionado 22 vulnerabilidades. Muchas de las vulnerabilidades han sido identificadas mediante pruebas automatizadas con herramientas como AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer y AFL. No se han encontrado problemas críticos que permitan eludir todos los niveles de protección del navegador y ejecutar código en el sistema fuera del entorno de sandbox. Como parte del programa de recompensas por descubrir vulnerabilidades para esta versión, Google ha pagado 13 premios por un total de 65 mil dólares (uno de $20000, uno de $10000, uno de $7000 y uno de $2000, tres de $5000 y tres de $3000, dos de $1000). El monto de una recompensa aún no se ha determinado.
Fuente: opennet.ru





