Chrome Versión 90

Google ha presentado el lanzamiento del navegador web Chrome 90. Al mismo tiempo, está disponible una versión estable del proyecto gratuito Chromium, que sirve como base para Chrome. El navegador Chrome se distingue por el uso de los logotipos de Google, la presencia de un sistema para enviar notificaciones en caso de falla, módulos para reproducir contenido de video protegido (DRM), un sistema para instalar actualizaciones automáticamente y transmitir parámetros RLZ durante la búsqueda. El próximo lanzamiento de Chrome 91 está previsto para el 25 de mayo.

Cambios clave en Chrome 90:

  • Todos los usuarios pueden abrir sitios a través de HTTPS de forma predeterminada al escribir nombres de host en la barra de direcciones. Por ejemplo, cuando ingresa al host example.com, el sitio https://example.com se abrirá de forma predeterminada y, si surgen problemas al abrir, se revertirá a http://example.com. Para controlar el uso del “https://” predeterminado, se propone la configuración “chrome://flags#omnibox-default-typed-navigations-to-https”.
  • Ahora es posible asignar diferentes etiquetas a las ventanas para separarlas visualmente en el panel del escritorio. La compatibilidad con el cambio de nombre de la ventana simplificará la organización del trabajo cuando se utilicen ventanas separadas del navegador para diferentes tareas, por ejemplo, al abrir ventanas separadas para tareas laborales, intereses personales, entretenimiento, materiales diferidos, etc. El nombre se cambia a través del elemento "Agregar título de ventana" en el menú contextual que aparece cuando hace clic derecho en un área vacía en la barra de pestañas. Después de cambiar el nombre en el panel de la aplicación, en lugar del nombre del sitio de la pestaña activa, se muestra el nombre seleccionado, lo que puede resultar útil al abrir los mismos sitios en diferentes ventanas vinculadas a cuentas independientes. El enlace se mantiene entre sesiones y después de reiniciar, las ventanas se restaurarán con los nombres seleccionados.
    Chrome Versión 90
  • Se agregó la capacidad de ocultar la "Lista de lectura" sin tener que cambiar la configuración en "chrome://flags" ("chrome://flags#read-later"). Para ocultarlo, ahora puede usar la opción "Mostrar lista de lectura" en la parte inferior del menú contextual que se muestra al hacer clic derecho en la barra de marcadores. Permítanos recordarle que en la última versión, cuando algunos usuarios hacen clic en el asterisco en la barra de direcciones, además del botón "Agregar marcador", aparece un segundo botón "Agregar a la lista de lectura", y en la esquina derecha del En el panel de marcadores aparece el menú “Lista de lectura”, que enumera todas las páginas agregadas previamente a la lista. Cuando abre una página de la lista, se marca como leída. Las páginas de la lista también se pueden marcar manualmente como leídas o no leídas, o eliminarse de la lista.
  • Se agregó soporte para la segmentación de la red para proteger contra métodos de seguimiento de los movimientos de los usuarios entre sitios basados ​​en el almacenamiento de identificadores en áreas no destinadas al almacenamiento permanente de información ("Supercookies"). Debido a que los recursos almacenados en caché se almacenan en un espacio de nombres común, independientemente del dominio de origen, un sitio puede determinar que otro sitio está cargando recursos al verificar si ese recurso está en el caché. La protección se basa en el uso de segmentación de red (Network Partitioning), cuya esencia es agregar a las cachés compartidas una vinculación adicional de registros al dominio desde el que se abre la página principal, lo que limita la cobertura de la caché solo para scripts de seguimiento de movimiento. al sitio actual (un script de un iframe no podrá verificar si el recurso se descargó de otro sitio). El precio de la segmentación es una disminución de la eficiencia del almacenamiento en caché, lo que lleva a un ligero aumento en el tiempo de carga de la página (máximo un 1.32%, pero para el 80% de los sitios entre un 0.09% y un 0.75%).
  • La lista negra de puertos de red para los cuales está bloqueado el envío de solicitudes HTTP, HTTPS y FTP se ha reabastecido para proteger contra ataques de integración NAT, que permite, al abrir una página web especialmente preparada por el atacante en un navegador, establecer una red. conexión desde el servidor del atacante a cualquier puerto UDP o TCP en el sistema del usuario, a pesar del uso del rango de direcciones interno (192.168.xx, 10.xxx). Se agregó 554 (protocolo RTSP) y 10080 (usado en la copia de seguridad de Amanda y VMWare vCenter) a la lista de puertos prohibidos. Anteriormente ya estaban bloqueados los puertos 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 y 6566.
  • Se agregó soporte inicial para abrir documentos PDF con formularios XFA en el navegador.
  • Para algunos usuarios, se ha activado una nueva sección de configuración “Configuración de Chrome > Privacidad y seguridad > Zona de pruebas de privacidad”, que permite administrar los parámetros de la API FLoC, destinados a determinar la categoría de intereses del usuario sin identificación individual y sin referencia a el historial de visitas a sitios específicos.
  • Ahora se muestra una notificación más clara con una lista de acciones permitidas cuando un usuario se conecta a un perfil para el cual la administración centralizada está habilitada.
  • Hizo que la interfaz de solicitud de permisos fuera menos intrusiva. Las solicitudes que el usuario probablemente desapruebe ahora se bloquean automáticamente con un indicador correspondiente que se muestra en la barra de direcciones, con el que el usuario puede ir a la interfaz para administrar permisos por sitio.
    Chrome Versión 90
  • Se incluye soporte para extensiones Intel CET (Intel Control-flow Enforcement Technology) para la protección del hardware contra exploits creados utilizando técnicas de programación orientada al retorno (ROP, programación orientada al retorno).
  • Se continúa trabajando en la transición del navegador para utilizar terminología inclusiva. El archivo "master_preferences" ha sido renombrado a "initial_preferences" para evitar herir los sentimientos de los usuarios que perciben la palabra "master" como una pista sobre la antigua esclavitud de sus antepasados. Para mantener la compatibilidad, la compatibilidad con "master_preferences" permanecerá en el navegador durante algún tiempo. Anteriormente, el navegador ya se había deshecho del uso de las palabras “lista blanca”, “lista negra” y “nativo”.
  • En la versión de Android, cuando el modo de ahorro de tráfico "Lite" está habilitado, la tasa de bits se reduce al descargar videos cuando se conecta a través de las redes de los operadores móviles, lo que reducirá los costos de los usuarios que tienen habilitadas las tarifas basadas en el tráfico. El modo "Lite" también proporciona compresión de imágenes solicitadas desde recursos disponibles públicamente (que no requieren autenticación) a través de HTTPS.
  • Se agregó un codificador de formato de video AV1, especialmente optimizado para su uso en videoconferencias basado en el protocolo WebRTC. El uso de AV1 en videoconferencias permite aumentar la eficiencia de la compresión y brindar la capacidad de transmitir en canales con un ancho de banda de 30 kbit/seg.
  • En JavaScript, los objetos Array, String y TypedArrays implementan el método at(), que le permite usar indexación relativa (la posición relativa se especifica como índice de la matriz), incluida la especificación de valores negativos relativos al final (por ejemplo, "arr.at(-1)" devolverá el último elemento de la matriz).
  • JavaScript ha agregado la propiedad ".indices" para expresiones regulares, que contiene una matriz con las posiciones inicial y final de grupos de coincidencias. La propiedad se completa sólo cuando se ejecuta la expresión regular con el indicador "/d". constante re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.índices[0]); // 0 — todos los grupos coincidentes // → [0, 2] console.log(m.indices[1]); // 1 es el primer grupo de coincidencias // → [0, 1] console.log(m.indices[2]); // 2 - segundo grupo de partidos // → [1, 2]
  • Se ha optimizado el rendimiento de las propiedades "super" (por ejemplo, super.x) para las que está habilitado el caché en línea. El rendimiento del uso de "super" ahora se acerca al rendimiento del acceso a propiedades normales.
  • La llamada a funciones de WebAssembly desde JavaScript se ha acelerado significativamente gracias al uso de la implementación en línea. Esta optimización sigue siendo experimental por ahora y requiere ejecutarse con el indicador "-turbo-inline-js-wasm-calls".
  • Se agregó la API WebXR Depth Sensing, que le permite determinar la distancia entre los objetos en el entorno del usuario y el dispositivo del usuario, por ejemplo, para crear aplicaciones de realidad aumentada más realistas. Le recordamos que la API WebXR le permite unificar el trabajo con varias clases de dispositivos de realidad virtual, desde cascos 3D estacionarios hasta soluciones basadas en dispositivos móviles.
  • La función de estimación de iluminación de WebXR AR se ha estabilizado, lo que permite que las sesiones de WebXR AR determinen los parámetros de iluminación ambiental para dar a los modelos una apariencia más natural y una mejor integración con el entorno del usuario.
  • El modo Origin Trials (funciones experimentales que requieren activación por separado) agrega varias API nuevas que actualmente están limitadas a la plataforma Android. Origin Trial implica la capacidad de trabajar con la API especificada desde aplicaciones descargadas de localhost o 127.0.0.1, o después de registrarse y recibir un token especial que es válido por un tiempo limitado para un sitio específico.
    • El método getCurrentBrowsingContextMedia(), que permite capturar una secuencia de vídeo MediaStream que refleja el contenido de la pestaña actual. A diferencia del método similar getDisplayMedia(), al llamar a getCurrentBrowsingContextMedia(), se presenta al usuario un cuadro de diálogo simple para confirmar o bloquear la operación de transferencia de video con el contenido de la pestaña.
    • Insertable Streams API, que le permite manipular transmisiones de medios sin procesar transmitidas a través de la API MediaStreamTrack, como datos de cámara y micrófono, resultados de capturas de pantalla o datos de decodificación de códecs intermedios. Las interfaces WebCodec se utilizan para presentar marcos sin formato y se genera una secuencia similar a la que genera la API WebRTC Insertable Streams basada en RTCPeerConnections. Desde el punto de vista práctico, la nueva API permite funcionalidades como aplicar técnicas de aprendizaje automático para identificar o anotar objetos en tiempo real, o agregar efectos como recorte de fondo antes de codificar o después de decodificar mediante un códec.
    • La capacidad de empaquetar recursos en paquetes (Web Bundle) para organizar la carga más eficiente de una gran cantidad de archivos adjuntos (estilos CSS, JavaScript, imágenes, iframes). Entre las deficiencias del soporte existente para paquetes para archivos JavaScript (webpack), que Web Bundle está tratando de eliminar: el paquete en sí, pero no sus componentes, puede terminar en la caché HTTP; la compilación y ejecución pueden comenzar sólo después de que el paquete se haya descargado por completo; Los recursos adicionales, como CSS e imágenes, deben codificarse en forma de cadenas de JavaScript, lo que aumenta el tamaño y requiere otro paso de análisis.
    • Soporte para manejo de excepciones en WebAssembly.
  • Se estabilizó la API declarativa de Shadow DOM para crear nuevas ramas raíz en Shadow DOM, por ejemplo, para separar un estilo de elemento de terceros importado y su subrama DOM asociada del documento principal. La API declarativa propuesta le permite usar solo HTML para desanclar ramas DOM sin la necesidad de escribir código JavaScript.
  • La propiedad CSS de relación de aspecto, que le permite vincular explícitamente la relación de aspecto a cualquier elemento (para calcular automáticamente el tamaño faltante al especificar solo la altura o el ancho), implementa la capacidad de interpolar valores durante la animación (transición suave de uno relación de aspecto a otra).
  • Se agregó la capacidad de reflejar el estado de elementos HTML personalizados en CSS a través de la pseudoclase “:state()”. La funcionalidad se implementa por analogía con la capacidad de los elementos HTML estándar de cambiar su estado dependiendo de la interacción del usuario.
  • La propiedad CSS "apariencia" ahora admite el valor "auto", que está configurado de forma predeterminada para Y , y en la plataforma Android adicionalmente para , , , Y .
  • Se agregó soporte para el valor "clip" a la propiedad CSS "overflow". Cuando se establece, el contenido que se extiende más allá del bloque se recorta hasta el límite del desbordamiento permitido del bloque sin posibilidad de desplazamiento. El valor que determina hasta qué punto el contenido puede extenderse más allá del borde real del cuadro antes de que comience el recorte se establece mediante la nueva propiedad CSS "overflow-clip-margin". En comparación con "overflow: oculto", el uso de "overflow: clip" permite un mejor rendimiento.
    Chrome Versión 90Chrome Versión 90
  • El encabezado HTTP Feature-Policy ha sido reemplazado por un nuevo encabezado Permissions-Policy para controlar la delegación de permisos y la habilitación de funciones avanzadas, que incluye soporte para valores de campos estructurados (por ejemplo, ahora puede especificar "Permissions-Policy: geolocalización =()" en lugar de "Función-Política: geolocalización 'ninguna'").
  • Protección reforzada contra el uso de Protocol Buffers para ataques causados ​​por la ejecución especulativa de instrucciones en los procesadores. La protección se implementa agregando el tipo MIME “application/x-protobuffer” a la lista de tipos MIME nunca rastreados, que se procesa a través del mecanismo de bloqueo de lectura de origen cruzado. Anteriormente, el tipo MIME “application/x-protobuf” ya estaba incluido en una lista similar, pero “application/x-protobuffer” estaba fuera.
  • La API de acceso al sistema de archivos implementa la capacidad de cambiar la posición actual en un archivo más allá de su final, llenando el espacio resultante con ceros durante la escritura posterior a través de la llamada FileSystemWritableFileStream.write(). Esta característica le permite crear archivos dispersos con espacios vacíos y simplifica significativamente la organización de la escritura en flujos de archivos con llegada desordenada de bloques de datos (por ejemplo, esto se practica en BitTorrent).
  • Se agregó el constructor StaticRange con implementación de tipos de rango livianos que no requieren actualizar todos los objetos asociados cada vez que cambia el árbol DOM.
  • Implementada la capacidad de especificar parámetros de ancho y alto para elementos. especificado dentro del elemento . Esta característica le permite calcular la relación de aspecto de los elementos. , por analogía con cómo se hace para , Y .
  • Se eliminó de WebRTC el soporte no estandarizado para canales de datos RTP y en su lugar se recomienda utilizar canales de datos basados ​​en SCTP.
  • Las propiedades navigator.plugins y navigator.mimeTypes ahora siempre devuelven un valor vacío (después de que finalizó la compatibilidad con Flash, estas propiedades ya no eran necesarias).
  • Se han realizado una gran cantidad de pequeñas mejoras en las herramientas para desarrolladores web y se ha agregado una nueva herramienta de depuración de CSS, flexbox.
    Chrome Versión 90

Además de las innovaciones y correcciones de errores, la nueva versión elimina 37 vulnerabilidades. Muchas de las vulnerabilidades se identificaron como resultado de pruebas automatizadas utilizando 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. Como parte del programa de recompensas en efectivo por descubrir vulnerabilidades para la versión actual, Google pagó 19 premios por valor de 54000 dólares (un premio de 20000 dólares, un premio de 10000 dólares, dos premios de 5000 dólares, tres premios de 3000 dólares, un premio de 2000 dólares, un premio de 1000 dólares y cuatro premios de 500 dólares). ). ). Aún no se ha determinado el tamaño de las 6 recompensas.

Por separado, cabe señalar que ayer, después de la formación de la versión correctiva 89.0.4389.128, pero antes del lanzamiento de Chrome 90, se publicó otro exploit que utilizaba una nueva vulnerabilidad de día 0 que no se solucionó en Chrome 89.0.4389.128. . Aún no está claro si este problema se ha solucionado en Chrome 90. Como en el primer caso, el exploit cubre solo una vulnerabilidad y no contiene código para evitar el aislamiento de la zona de pruebas (cuando se ejecuta Chrome con el indicador "--no-sandbox" , el exploit ocurre cuando abrir una página web en la plataforma Windows le permite ejecutar el Bloc de notas). La vulnerabilidad asociada con el nuevo exploit afecta la tecnología WebAssembly.

Fuente: opennet.ru

Añadir un comentario