La compañía Google ha presentado el lanzamiento de la versión 97 de su navegador web Chrome. Al mismo tiempo, también está disponible la versión estable del proyecto de código abierto Chromium, que sirve de base para Chrome. El navegador Chrome se distingue por el uso de logotipos de Google, un sistema de notificaciones en caso de fallos, módulos para la reproducción de contenido de video protegido contra copias (DRM), un sistema de instalación automática de actualizaciones y la transmisión de parámetros RLZ durante las búsquedas. Para aquellos que necesitan más tiempo para actualizar, se mantiene una rama Extended Stable, que se acompaña durante 8 semanas, en la que se genera una actualización para la versión anterior de Chrome 96. El próximo lanzamiento de Chrome 98 está previsto para el 1 de febrero.
Principales cambios en Chrome 97:
- Para algunos usuarios, se ha introducido una nueva interfaz de gestión de datos almacenados en el navegador en la configuración («chrome://settings/content/all»). La principal diferencia de esta nueva interfaz es su enfoque en la configuración de permisos y la eliminación a la vez de todas las cookies del sitio, sin posibilidad de ver información detallada sobre cookies individuales o de eliminarlas selectivamente. Según Google, el acceso para gestionar cookies individuales por parte de un usuario común, que no está familiarizado con los matices del desarrollo web, puede dar lugar a interrupciones inesperadas en el funcionamiento de los sitios debido a cambios imprudentes en parámetros individuales, así como a la desactivación accidental de mecanismos de protección de la privacidad activados a través de cookies. Para aquellos que necesitan manipular cookies individuales, se recomienda usar la sección de gestión del almacenamiento en las herramientas para desarrolladores web (Applocation/Storage/Cookie).

- En el bloque con la información del sitio se implementa la visualización de una breve descripción del sitio (por ejemplo, descripciones de Wikipedia), si en la configuración se activa el modo de optimización de búsquedas y navegación (opción «Mejorar las búsquedas y la navegación»).

- Se ha mejorado el soporte para el autocompletado en formularios web. Las recomendaciones con opciones de autocompletado ahora se muestran con un pequeño desplazamiento y vienen acompañadas de íconos informativos para facilitar la vista previa y la identificación visual de la relación con el campo que se está completando. Por ejemplo, el ícono del perfil indica que el autocompletado propuesto se relaciona con campos de dirección e información de contacto.

- Se garantiza la eliminación de los manejadores de perfiles de usuario de la memoria tras cerrar las ventanas del navegador asociadas. Anteriormente, los perfiles permanecían en memoria y continuaban ejecutando tareas relacionadas con la sincronización y la ejecución de scripts en segundo plano de las extensiones, lo que llevaba a un uso innecesario de recursos en sistemas donde se utilizan múltiples perfiles simultáneamente (por ejemplo, perfil de invitado y vinculación a una cuenta de Google). Además, se garantiza una limpieza más exhaustiva de los datos que permanecen durante el trabajo con el perfil.
- Se ha mejorado la página de configuración de motores de búsqueda («Settings > Manage search engines»). Se ha desactivado la activación automática de los motores, cuya información se proporciona al abrir el sitio a través del script OpenSearch; ahora, los nuevos motores para procesar solicitudes de búsqueda desde la barra de direcciones deben activarse manualmente en la configuración (los motores que antes se activaban automáticamente continuarán funcionando sin cambios).
- A partir del 17 de enero, no se aceptarán extensiones que utilicen la segunda versión del manifiesto de Chrome en el catálogo de Chrome Web Store, pero los desarrolladores de extensiones que ya se han añadido, como antes, podrán publicar actualizaciones.
- Se ha añadido soporte experimental para la especificación WebTransport, que define el protocolo y la API de JavaScript asociada para enviar y recibir datos entre el navegador y el servidor. El canal de comunicación se organiza sobre HTTP/3 utilizando el protocolo QUIC como transporte. WebTransport puede utilizarse en lugar del mecanismo WebSockets, ofreciendo capacidades adicionales como la organización de la transmisión en múltiples flujos, flujos unidireccionales, entrega sin tener en cuenta el orden de envío de paquetes (out-of-order), modos de entrega fiable y no fiable. Además, WebTransport puede aplicarse en lugar del mecanismo Server Push, del cual Google ha prescindido en Chrome.
- Se han añadido métodos findLast y findLastIndex a los objetos Array y TypedArrays de JavaScript, lo que permite buscar elementos con la salida del resultado en relación con el final del array. [1,2,3,4].findLast((el) => el % 2 === 0) // → 4 (el último elemento par)
- Los elementos HTML cerrados (sin el atributo «open») ahora son accesibles para búsqueda y enlaces, y se despliegan automáticamente al utilizar la búsqueda en la página y la navegación por fragmentos (ScrollToTextFragment).
- Restricciones de Content Security Policy (CSP) en los encabezados de respuesta servidores ahora se aplican también a los workers dedicados, que antes se consideraban documentos separados.
- Se ha asegurado una solicitud explícita de autorización para cargar cualquier subrecurso desde la red interna; antes de acceder a la red interna o a localhost en el servidor del sitio principal, ahora se envía una solicitud CORS (Cross-Origin Resource Sharing) con el encabezado «Access-Control-Request-Private-Network: true», que requiere la confirmación de la operación a través del encabezado «Access-Control-Allow-Private-Network: true» que debe ser devuelto.
- Se ha añadido la propiedad CSS font-synthesis, que permite gestionar la posibilidad de que el navegador sintetice estilos de fuente faltantes (oblique, bold y small-cap) que no están presentes en la familia de fuentes seleccionada.
- Para las transformaciones CSS en la función perspective() se ha implementado el parámetro ‘none’, que se maneja como un valor infinito al organizar la animación.
- En el encabezado HTTP Permissions-Policy (Feature Policy), que se utiliza para delegar poderes y habilitar capacidades avanzadas, se ha añadido soporte para el valor keyboard-map, que permite el uso de la API Keyboard. Se ha implementado el método Keyboard.getLayoutMap(), que permite determinar qué tecla se ha presionado teniendo en cuenta diferentes distribuciones de teclado (por ejemplo, si se presionó la tecla en distribución rusa o inglesa).
- Se ha añadido el método HTMLScriptElement.supports(), que unifica la definición de nuevas capacidades disponibles en el elemento «script», como la posibilidad de conocer la lista de valores compatibles para el atributo «type».
- El proceso de normalización de nuevas líneas al enviar formularios web se ha alineado con los motores de navegador Gecko y WebKit. La normalización de los caracteres de salto de línea y retorno de carro (reemplazo de \/r y \/n por \r\n) en Chrome ahora se realiza en la etapa final, y no al inicio del procesamiento del envío del formulario (es decir, los controladores intermedios que utilizan el objeto FormData verán los datos como los añadió el usuario, y no en su forma normalizada).
- Se ha estandarizado la denominación de las propiedades para la API Client Hints, que se está desarrollando como un reemplazo del encabezado User-Agent y que permite enviar selectivamente datos sobre parámetros específicos del navegador y del sistema (versión, plataforma, etc.) solo después de una solicitud del servidor. Las propiedades ahora se definen con el prefijo «sec-ch-«, como sec-ch-dpr, sec-ch-width, sec-ch-viewport-width, sec-ch-device-memory, sec-ch-rtt, sec-ch-downlink y sec-ch-ect.
- Se ha aplicado la segunda etapa de la descontinuación del soporte para la API WebSQL, cuyo acceso desde scripts de terceros será bloqueado. En el futuro, se planea descontinuar gradualmente el soporte para WebSQL por completo, independientemente del contexto de uso. El controlador WebSQL se basa en código SQLite y podría ser utilizado por atacantes para explotar vulnerabilidades en SQLite.
- Para la plataforma Windows, se ha habilitado una compilación con verificaciones de integridad del flujo de ejecución (CFG, Control Flow Guard), que bloquea los intentos de inyección de código en el proceso de Chrome. Además, ahora se aplica aislamiento en caja de arena a los servicios de red que se ejecutan en procesos separados, limitando las capacidades del código en esos procesos.
- En Chrome para Android, se ha activado el mecanismo de actualización dinámica del registro de certificados emitidos y revocados (Certificate Transparency), que anteriormente se había activado en las compilaciones de sistemas de escritorio.
- Se han realizado mejoras en las herramientas para desarrolladores web. Se ha implementado soporte experimental para la sincronización de configuraciones de DevTools entre diferentes dispositivos. Se ha añadido un nuevo panel de Grabador, que permite grabar, reproducir y analizar las acciones del usuario en la página.

Al mostrar errores en la consola web, se asegura la visualización de los números de columna relacionados con el problema, lo cual es útil para depurar problemas en código JavaScript minimizado. Se ha actualizado la lista de dispositivos que se pueden simular para evaluar la presentación de la página en dispositivos móviles. En la interfaz de edición de bloques HTML (Editar como HTML) se han añadido resaltado de sintaxis y la posibilidad de autocompletar la entrada.

Además de las novedades y correcciones de errores, la nueva versión ha solucionado 37 vulnerabilidades. Muchas de estas vulnerabilidades se identificaron a través de pruebas automatizadas utilizando las herramientas AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer y AFL. Una de las vulnerabilidades ha sido clasificada como un problema crítico, permitiendo eludir todos los niveles de protección del navegador y ejecutar código en el sistema, fuera del entorno de caja de arena. Los detalles sobre la vulnerabilidad crítica (CVE-2022-0096) todavía no se han revelado, solo se sabe que está relacionada con el acceso a áreas de memoria ya liberadas en el código utilizado para trabajar con almacenes internos (API Storage).
En el marco del programa de recompensas por descubrir vulnerabilidades para la versión actual, Google ha otorgado 24 premios por un total de 54 mil dólares estadounidenses (tres premios de $10,000, dos premios de $5,000, un premio de $4,000, tres premios de $3,000 y un premio de $1,000). El monto de 14 recompensas aún no ha sido determinado.
Fuente: opennet.ru





