Google ha presentado el lanzamiento del navegador web Chrome 89. Al mismo tiempo, está disponible la versión estable del proyecto de código abierto Chromium, que es la base de Chrome. El navegador Chrome se caracteriza por el uso de logotipos de Google, un sistema de envío de notificaciones en caso de fallos, módulos para reproducir contenido de video protegido (DRM), un sistema de instalación automática de actualizaciones y la transmisión de parámetros RLZ en las búsquedas. La próxima versión de Chrome 90 está programada para el 13 de abril.
Principales cambios en Chrome 89:
- La versión de Chrome para Android ahora solo podrá ejecutarse en dispositivos certificados por Play Protect. En máquinas virtuales los emuladores de Chrome para Android se podrá utilizar si se emula un dispositivo permitido o si el emulador fue desarrollado por Google. Se puede verificar si un dispositivo está certificado en la aplicación Google Play en la sección de ajustes (en la página de ajustes, en la parte inferior se muestra el estado de 'certificación de Play Protect'). Para dispositivos no certificados, como los que utilizan firmware de terceros, se les sugiere a los usuarios registrar sus dispositivos para ejecutar Chrome.
- Para un pequeño porcentaje de usuarios, se ha habilitado la apertura de sitios por defecto a través de HTTPS al ingresar nombres de host en la barra de direcciones. Por ejemplo, al ingresar el host example.com, por defecto se abrirá el sitio https://example.com, y si hay problemas al abrirlo, se revertirá a http://example.com. Para gestionar el uso por defecto de 'https://', se ha propuesto la configuración 'chrome://flags#omnibox-default-typed-navigations-to-https'.
- Se ha habilitado el soporte para perfiles que permite a diferentes usuarios dividir sus cuentas al usar un mismo navegador. Por ejemplo, a través de los perfiles se puede organizar el acceso para miembros de la familia o separar las sesiones utilizadas para trabajo y asuntos personales. El usuario puede crear un nuevo perfil de Chrome y establecer su activación al iniciar sesión en cierta cuenta de Google, permitiendo así a diferentes usuarios compartir marcadores, configuraciones e historial de navegación. Al intentar iniciar sesión en una cuenta vinculada a otro perfil, se le pedirá al usuario que cambie a ese perfil. Si el usuario tiene vínculos a varios perfiles, se le ofrecerá la opción de elegir el perfil deseado. También es posible asignar diferentes esquemas de color a cada perfil para una separación visual de los usuarios.

- Se ha activado la visualización de previsualizaciones de contenido al pasar el mouse sobre las pestañas en la barra superior. Anteriormente, la previsualización del contenido de las pestañas estaba desactivada por defecto y requería cambiar la configuración en «chrome://flags/#tab-hover-cards».

- Para algunos usuarios, se ha habilitado la función «Lista de lectura» (Reading List, «chrome://flags#read-later»), que, al hacer clic en la estrella en la barra de direcciones, además del botón «Agregar marcador», muestra un segundo botón «Agregar a la lista de lectura», y en la esquina derecha de la barra de marcadores aparece un menú «Lista de lectura», que enumera todas las páginas previamente agregadas a la lista. Al abrir una página desde la lista, se marca como leída. Las páginas en la lista también pueden ser marcadas como leídas o no leídas manualmente o eliminadas de la lista.

- Para los usuarios que acceden a su cuenta de Google sin habilitar Chrome Sync, se proporciona acceso a los métodos de pago y contraseñas guardados en la cuenta de Google. Esta funcionalidad está habilitada para algunos usuarios y se extenderá gradualmente al resto.
- Se ha habilitado el soporte para la búsqueda rápida de pestañas, que anteriormente requería activarse a través de la bandera «chrome://flags/#enable-tab-search». El usuario puede ver una lista de todas las pestañas abiertas y filtrar rápidamente la pestaña deseada, independientemente de si está en la ventana actual o en otra.

- Se ha interrumpido el procesamiento de la entrada de palabras individuales en la barra de direcciones para todos los usuarios como intentos de acceder a sitios internos. Anteriormente, al ingresar una sola palabra en la barra de direcciones, el navegador intentaba primero determinar en DNS la existencia de un host con ese nombre, suponiendo que el usuario intentaba abrir un subdominio, y luego redirigía la solicitud al motor de búsqueda. Así, el propietario del servidor DNS indicado en la configuración del usuario recibía información sobre búsquedas que consistían en una sola palabra, lo que se consideraba una violación de la privacidad. Para las empresas que utilizan hosts de internet sin subdominio (por ejemplo, "https://helpdesk/") se ha ofrecido la opción de retornar al comportamiento anterior.
- Se ha añadido la posibilidad de fijar la versión de la extensión o aplicación. Por ejemplo, para utilizar solo extensiones verificadas en la empresa, el administrador puede configurar Chrome mediante la nueva política ExtensionSettings para utilizar su propia URL para descargar actualizaciones, en lugar de la URL especificada en el manifiesto de la extensión.
- En sistemas x86, ahora se requiere que el procesador soporte las instrucciones SSE3 para el funcionamiento del navegador, las cuales son soportadas por procesadores Intel desde 2003 y por AMD desde 2005.
- Se han añadido APIs adicionales enfocadas en proporcionar funcionalidad que pueda reemplazar las cookies de terceros utilizadas para rastrear los movimientos del usuario entre sitios en el código de redes publicitarias, widgets de redes sociales y sistemas de análisis web. Las siguientes APIs se han ofrecido para pruebas:
- Trust Token para separar usuarios sin utilizar identificadores de sitios cruzados.
- First party sets — permite a dominios relacionados declararse primarios para que el navegador pueda considerar esta relación en las solicitudes entre sitios.
- Schemeful Same-Site para extender el concepto de same-site a diferentes esquemas de URL, es decir, http://website.example y https://website.example serán tratados como un solo sitio en solicitudes entre sitios.
- Floc para determinar la categoría de intereses del usuario sin identificar individualmente y sin vinculación al historial de visitas de sitios específicos.
- Conversion Measurement para evaluar la actividad del usuario después de hacer clic en un anuncio.
- User-Agent Client Hints para reemplazar el User-Agent y proporcionar selectivamente datos sobre parámetros específicos del navegador y del sistema (versión, plataforma, etc.).
- Se ha añadido la API Serial, que permite a los sitios web leer y escribir datos a través de un puerto serie. La razón de la aparición de esta API radica en la posibilidad de crear aplicaciones web para el control directo de dispositivos como microcontroladores e impresoras 3D. Para acceder al dispositivo periférico, se requiere la confirmación explícita de los permisos por parte del usuario.
- Se ha añadido la API WebHID para el acceso de bajo nivel a dispositivos HID (dispositivo de interfaz humana, teclados, ratones, gamepads, paneles táctiles), que permite implementar la lógica de funcionamiento con dispositivos HID en JavaScript para interactuar con dispositivos HID poco comunes que no tienen controladores específicos en el sistema. Principalmente, esta nueva API está dirigida a proporcionar soporte para gamepads.
- Se ha añadido la API Web NFC, que permite a las aplicaciones web leer y escribir etiquetas NFC. Ejemplos de uso de esta nueva API en aplicaciones web incluyen proporcionar información sobre exposiciones en museos, realizar inventarios y obtener información de las credenciales de los participantes en conferencias, entre otros. El envío y escaneo de etiquetas se realiza mediante los objetos NDEFWriter y NDEFReader.
- La API Web Share (objeto navigator.share) ha sido expandida más allá de los dispositivos móviles y ahora está disponible para los usuarios de navegadores de escritorio (actualmente solo para Windows y Chrome OS). La API Web Share proporciona herramientas para compartir información en redes sociales, por ejemplo, permite generar un botón unificado para publicar en las redes sociales que el visitante utiliza o para enviar datos a otras aplicaciones.
- En las versiones para Android y el componente WebView, se ha incluido el soporte para decodificar el formato de imágenes AVIF (AV1 Image Format), que utiliza tecnologías de compresión intra-cadencial del formato de codificación de video AV1 (en las versiones de escritorio, el soporte para AVIF se incluyó en Chrome 85). El contenedor para la distribución de datos comprimidos en AVIF es completamente análogo al HEIF. AVIF admite tanto imágenes en HDR (Alto Rango Dinámico) y en espacios de color de amplia gama, como en rango dinámico estándar (SDR).
- Se ha añadido una nueva API de Reporting para obtener información sobre violaciones de las reglas de uso seguro en la página de operaciones privilegiadas, definida a través del encabezado COOP (Cross-Origin-Opener-Policy), que también permite activar el modo de depuración de COOP, funcionando sin bloquear las violaciones de reglas.
- Se ha añadido la función performance.measureUserAgentSpecificMemory(), que determina el tamaño de memoria consumido durante el procesamiento de la página.
- Para cumplir con los requisitos de los estándares web, todas las URL 'data:' ahora se tratan como potencialmente confiables, es decir, forman parte de un contexto protegido.
- En la API Streams se ha añadido soporte para flujos de bytes (Byte Streams), que están diseñados específicamente para la transmisión eficiente de conjuntos de bytes arbitrarios y minimizan el número de operaciones de copia de datos. El flujo de salida se puede escribir en primitivos como cadenas o ArrayBuffer.
- Se ha implementado en los elementos SVG el soporte completo para la sintaxis de la propiedad 'filter', que permite aplicar simultáneamente a elementos SVG y no SVG funciones de filtrado como blur(), sepia() y grayscale().
- Se ha implementado el pseudo-elemento '::target-text' en CSS, que se puede utilizar para resaltar un fragmento al que se ha accedido a través de texto (scroll-to-text) con un estilo diferente al que utiliza el navegador para resaltar los resultados encontrados.
- Se han añadido propiedades CSS para gestionar el redondeo de esquinas: border-start-start-radius, border-start-end-radius, border-end-start-radius, border-end-end-radius.
- Se ha añadido la propiedad CSS forced-colors para determinar si el navegador aplica en la página una paleta de colores limitada definida por el usuario.
- Se ha añadido la propiedad CSS forced-color-adjust para desactivar la restricción forzada de colores para elementos individuales, dejando así completa flexibilidad para controlar los colores a través de CSS.
- En JavaScript se permite el uso de la palabra clave await en módulos de nivel superior, lo que permite integrar de manera más suave las llamadas asíncronas en el proceso de carga de módulos y evitar la necesidad de envolverlas en una 'async function'. Por ejemplo, en lugar de (async function() { await Promise.resolve(console.log('test')); }()); ahora se puede escribir await Promise.resolve(console.log('test'));.
- En el motor V8 de JavaScript se ha acelerado la llamada a funciones cuando el número de argumentos pasados no coincide con los parámetros definidos en la función. En caso de discrepancias en el número de argumentos, el rendimiento ha aumentado un 11.2% en modo sin JIT y un 40% al utilizar JIT TurboFan.
- Se han realizado una gran cantidad de pequeñas mejoras en las herramientas para desarrolladores web.
Además de las novedades y correcciones de errores, en la nueva versión se han solucionado 47 vulnerabilidades. Muchas de estas vulnerabilidades fueron detectadas mediante pruebas automatizadas usando las herramientas AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer y AFL. No se han identificado problemas críticos que permitan eludir todos los niveles de protección del navegador y ejecutar código en el sistema fuera del entorno sandbox. Sin embargo, se destaca que una de las vulnerabilidades corregidas (CVE-2021-21166), relacionada con la vida útil de los objetos en el subsistema de audio, tiene carácter de problema 0-day y se utilizaba en un exploit antes de la corrección. En el marco del programa de recompensas por la detección de vulnerabilidades para esta versión, Google ha otorgado 33 premios por un total de 61,000 dólares (dos premios de $10,000, dos premios de $7,500, tres premios de $5,000, dos premios de $3,000, cuatro de $1,000 y dos de $500). La cantidad de 18 recompensas aún no ha sido determinada.
Fuente: opennet.ru




