La empresa Google la versión del navegador web . A la vez lanzamiento estable de un proyecto de código abierto , que sirve como base para Chrome. El navegador Chrome utiliza los logotipos de Google, tiene un sistema para enviar notificaciones en caso de fallos, permite la descarga del módulo Flash a petición, módulos para la reproducción de contenido de video protegido (DRM), un sistema de actualización automática y la transmisión en las búsquedas . La siguiente versión de Chrome 86 está programada para el 6 de octubre.
:
- ofrecerá la posibilidad de agrupar pestañas. Las pestañas se agrupan mediante el menú contextual y pueden estar asociadas con un color y una etiqueta específicos. Al hacer clic en la etiqueta del grupo, las pestañas asociadas se ocultan y queda solo una etiqueta. Un nuevo clic en la etiqueta revela las pestañas ocultas.
- Se ha implementado una vista previa de contenido de las pestañas. Al pasar el cursor sobre el botón de la pestaña, ahora se muestra una miniatura de la página en la pestaña. Esta función aún no está activada para todos los usuarios y se puede habilitar mediante la configuración «chrome://flags/#tab-hover-cards».
- Se ha añadido la posibilidad de guardar formularios PDF editados, así como configuraciones «chrome://flags#pdf-viewer-update» y «chrome://flags/#pdf-two-up-view» para experimentar con de visualización de documentos PDF.
- Se ha añadido la posibilidad de compartir enlaces mediante códigos QR. Para generar un código QR para la página actual, se ha colocado un icono especial en la barra de direcciones, que aparece al hacer clic en la barra de direcciones. Esta función todavía no está activada para todos los usuarios y se puede habilitar mediante la configuración «chrome://flags/#sharing-qr-code-generator».
- En la página about:flags ha aparecido la opción «Omnibox UI Hide Steady-State URL Path, Query, and Ref» («chrome://flags#omnibox-ui-hide-steady-state-url-path-query-and-ref-on-interaction»), desactivar la visualización de elementos de ruta y parámetros de consulta en la barra de direcciones, dejando visible solo el dominio del sitio. La ocultación se lleva a cabo al iniciar la interacción con la página (durante la carga y mientras el usuario no comience a desplazarse, se muestra la URL completa). Después de ocultarla, se sugiere hacer clic en la barra de direcciones para ver la URL completa. También está disponible la opción 'chrome://flags#omnibox-ui-reveal-steady-state-url-path-query-and-ref-on-hover' para mostrar la URL completa al pasar el cursor. La configuración disponible en el menú contextual 'Siempre mostrar la URL completa' anula la ocultación de 'https://', 'www.', rutas y parámetros. Por defecto, la ocultación está activada solo para un pequeño porcentaje de usuarios. Se menciona como motivo del cambio el deseo de proteger a los usuarios contra el phishing que manipula los parámetros en la URL.
- En modo tableta para dispositivos con pantallas táctiles, se ha activado la navegación horizontal por las pestañas abiertas, donde además de los títulos en las pestañas se muestran grandes miniaturas de las páginas relacionadas. Las pestañas se pueden mover y reorganizar mediante gestos en la pantalla. La visualización de miniaturas se activa y desactiva con un botón especial, ubicado junto a la barra de direcciones y el avatar del usuario. Para desactivar el modo, existen configuraciones 'chrome://flags/#webui-tab-strip' y 'chrome://flags/#scrollable-tabstrip'.
- En la versión para Android, al escribir en la barra de direcciones, se proporciona una sugerencia en la lista de páginas propuestas para acceder rápidamente a las pestañas ya abiertas.
- En la versión para Android, en el menú contextual de los enlaces que aparece al mantener presionado el enlace, se indican etiquetas para resaltar páginas rápidas. La velocidad se determina en función de métricas , que tienen en cuenta las métricas resumidas de tiempo de carga, capacidad de respuesta y estabilidad del contenido.
- Se ha implementado el bloqueo (sin cifrado) se implementó la salida de advertencias al cargar archivos no seguros (zip, iso, etc.). En la próxima versión se espera bloquear archivos y mostrar advertencias para documentos (docx, pdf, etc.). Más adelante, se planea eliminar gradualmente el soporte para la carga de archivos sin cifrado. Se ha implementado el bloqueo, ya que la carga de archivos sin cifrado puede ser utilizada para realizar acciones maliciosas mediante la sustitución de contenido durante ataques MITM.
- Se ha habilitado por defecto el soporte para 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. El contenedor para distribuir datos comprimidos en AVIF es completamente análogo al HEIF. AVIF soporta tanto imágenes en HDR (High Dynamic Range) y en un espacio de color de gama amplia, como en rango dinámico estándar (SDR).
- Al compilar ensamblados para Windows y macOS, por defecto al invocar los compiladores MSVC y Clang optimizaciones basadas en el resultado del perfilado de código (PGO - Profile-guided optimization), que permiten generar código más óptimo basado en el análisis de las características de la ejecución del programa. La activación de PGO ha hecho posible acelerar la carga de pestañas aproximadamente un 10% (velocidad de ejecución de la prueba Speedometer 2.0 en macOS un 7.7% y en Windows un 11.4%). La capacidad de respuesta de la interfaz aumentó en macOS un 3.9% y en Windows un 7.3%.
- Se ha añadido un modo experimental de limitación de actividad de pestañas en segundo plano ("Tab Throttling"), disponible a través de la configuración "chrome://flags##intensive-wake-up-throttling" (se espera que la activación por defecto esté disponible en Chrome 86). Al activar este modo, la transferencia de control a las pestañas en segundo plano (TaskQueues) se reduce a 1 llamada por minuto si la página ha estado en segundo plano durante más de 5 minutos.
- Para todas las categorías de usuarios se ha activado el modo de reducción del consumo de recursos de CPU cuando la ventana del navegador no está en el campo de visión del usuario. Chrome verifica si la ventana del navegador está oculta por otras ventanas y excluye el renderizado de píxeles en áreas de superposición.
- protección contra la carga de contenido multimedia mezclado (cuando en una página HTTPS se cargan recursos a través del protocolo http://). En páginas abiertas por HTTPS, se implementa un reemplazo automático de enlaces «http://» a «https://» en bloques relacionados con la carga de imágenes (anteriormente se reemplazaron scripts e iframes, archivos de sonido y video). Si una imagen no está disponible a través de https, su carga se bloquea (se puede marcar manualmente el bloqueo a través del menú accesible mediante el ícono de candado en la barra de direcciones).
- Los certificados TLS emitidos a partir del 1 de septiembre de 2020, una nueva restricción sobre la duración — la vida útil de esos certificados no podrá superar los 398 días (13 meses). Restricciones similares se aplican en Firefox y Safari. Para los certificados obtenidos antes del 1 de septiembre, la confianza se mantendrá, pero se limitará a 825 días (2.2 años).
- En el modo Origin Trials (funcionalidades experimentales que requieren activación por separado) se han añadido varias API nuevas. El Origin Trial implica la posibilidad de trabajar con la API especificada desde aplicaciones cargadas desde localhost o 127.0.0.1, o tras registrarse y obtener un token especial que tiene una duración limitada para un sitio específico.
- el concepto para asegurar una navegación fluida entre sitios y la inserción de una página dentro de otra para previsualizar contenido antes de la transición. Se ha propuesto una nueva etiqueta que permite mostrar otra página en forma de inserción, donde al enfocarse en la página mostrada en la inserción, esta se convierte en el estado del documento principal, dentro del cual se permite la navegación. A diferencia de iframe, la inserción está completamente aislada de la página base y se maneja como un documento separado.
- API , permitiendo realizar solicitudes fetch con la carga de contenido en forma de flujo (anteriormente, la solicitud requería que el contenido estuviera completamente listo, pero ahora se pueden comenzar a enviar datos en forma de flujo sin esperar a que el cuerpo de la solicitud esté completamente listo). Por ejemplo, una aplicación web puede comenzar a enviar datos de un formulario web tan pronto como el usuario comienza a escribir texto en el campo de entrada y cuando se complete la escritura, los datos ya se habrán enviado a través de fetch(). Además, a través de la nueva API se pueden transmitir datos de audio y video generados del lado del cliente.
- Se ha propuesto una API para crear nuevas ramas raíz en , por ejemplo, para separar el estilo de un elemento de terceros importado y la subrama DOM asociada del documento principal. La API declarativa propuesta permite desacoplar las ramas DOM solo con HTML sin la necesidad de escribir código en JavaScript.
- Se ha añadido una propiedad , que permite al remitente de flujos RTC (comunicación en tiempo real) controlar la activación del mecanismo adaptativo de envío de paquetes.
- Se ha simplificado la provisión de almacenamiento persistente para aplicaciones PWA (Aplicaciones Web Progresivas) y TWA (Actividades Web de Confianza).
La aplicación solo necesita llamar al método navigator.storage.persist() y automáticamente.
- Se ha implementado una nueva regla CSS , que permite registrar con herencia, verificación de tipos y valores predeterminados. La acción de @property es similar al método registerProperty() previamente añadido.
- Para sistemas con Windows, se ha añadido la posibilidad de usar el método para determinar la instalación de aplicaciones PWA. Anteriormente, este método solo funcionaba en la plataforma Android.
- Para sistemas de escritorio, se ha implementado soporte para , que permiten proporcionar acceso rápido a acciones comunes en la aplicación. Para crear accesos directos, simplemente hay que añadir elementos al manifiesto de la aplicación web en formato PWA (Aplicaciones Web Progresivas). Anteriormente, los accesos directos de aplicaciones solo estaban disponibles en la plataforma Android.
- Se ha añadido la propiedad CSS para gestionar la visibilidad del contenido y optimizar el renderizado. Al establecer el valor 'auto', la visibilidad es determinada por el navegador según la proximidad del elemento al límite del área visible. El valor 'hidden' permite gestionar totalmente la visualización del elemento desde scripts.
- Se ha añadido la propiedad CSS para establecer un valor específico para contadores existentes. La nueva propiedad CSS complementa las propiedades previously disponible counter-reset y counter-increment, utilizadas para crear un nuevo contador o incrementar uno existente.
- Se ha añadido la propiedad CSS ‘page’, que refleja la página al imprimir, así como la propiedad ‘page-orientation’ para obtener información sobre la orientación de la página (‘upright’, ‘rotate-left’ y ‘rotate-right’). Se ha implementado soporte para acceder a las páginas por nombres, por ejemplo, ‘@page foobar {}’.
- Se ha implementado la API para medir las demoras de eventos antes y después de la carga de la página.
- En el evento leavepictureinpicture, ahora se pasa una referencia a pictureInPictureWindow para acceder a la ventana en modo Picture-in-Picture.
- Al completar el encabezado Referrer por defecto ahora la regla strict-origin-when-cross-origin (enviar el Referrer recortado a otros hosts desde los que se cargan recursos) en lugar de no-referrer-when-downgrade (el Referrer no se completa al realizar la solicitud de HTTPS a HTTP, pero se transmite al cargar recursos a través de HTTPS).
- En la API WebAuthn nuevos métodos getPublicKey(), getPublicKeyAlgorithm() y getAuthenticatorData().
- En WebAssembly se admite la importación y exportación de parámetros de función enteros de 64 bits, utilizando el tipo BigInt de JavaScript.
- En WebAssembly se ha implementado la extensión , que las funciones devuelvan más de un valor.
- El compilador inicial (baseline) Liftoff para WebAssembly se utiliza para todas las arquitecturas y plataformas, no solo para sistemas Intel. La diferencia clave entre Liftoff y el compilador TurboFan utilizado anteriormente es que Liftoff está diseñado para alcanzar la máxima velocidad de compilación inicial, a costa de un bajo rendimiento del código generado. Liftoff es significativamente más simple que TurboFan y genera código de máquina listo para ejecutarse muy rápidamente, lo que permite iniciar su ejecución casi de inmediato, minimizando la latencia de la compilación. Para acelerar el código preliminar, se ejecuta paralelamente una fase de recompilación optimizadora utilizando el compilador Turbofan. Una vez que las instrucciones de máquina optimizadas están listas, la versión preliminar inicial se reemplaza por un código más rápido. En total, mediante la reducción de la latencia antes del comienzo de la ejecución, el uso de Liftoff ha llevado a un aumento del rendimiento del conjunto de pruebas de WebAssembly de aproximadamente el 20%.
- En JavaScript se han añadido nuevos operadores de asignación lógica: '??=', '&&=' y '||='. El operador 'x ??= y' realiza la asignación solo si 'x' es null o undefined. El operador 'x ||= y' realiza la asignación solo si 'x' es FALSE, y en 'x &&= y' es TRUE.
- Se ha añadido el método String.prototype.replaceAll(), que devuelve una nueva cadena (la cadena original no cambia), en la que se han realizado cambios en todas las coincidencias basadas en la plantilla especificada. Las plantillas pueden ser tanto máscaras simples como expresiones regulares.
- Se ha implementado el método Promise.any(), que devuelve la primera Promise completada de la lista.
- Se ha descontinuado el uso del manifiesto AppCache (una tecnología para permitir que las aplicaciones web funcionen en modo offline). La razón es el deseo de eliminar uno de los vectores para llevar a cabo ataques relacionados con el scripting entre sitios. Se recomienda utilizar la API en lugar de AppCache. .
- Se prohíbe la transmisión de cookies en modo SameSite=None para conexiones no cifradas. El atributo SameSite se especifica en el encabezado Set-Cookie para controlar la transmisión de cookies y, por defecto, se establece en "SameSite=Lax", lo que limita el envío de cookies para subpeticiones entre sitios, como la solicitud de una imagen o la carga de contenido a través de un iframe desde otro sitio.
Los sitios pueden anular el modo SameSite por defecto estableciendo explícitamente el valor SameSite=None al configurar las cookies. El valor SameSite=None para las cookies ahora solo puede establecerse en modo Secure, que se aplica a conexiones a través de HTTPS. - En las herramientas para desarrolladores web se admite la edición de estilos creados por marcos CSS-in-JS mediante la API CSSOM (Modelo de Objetos CSS), así como estilos añadidos desde JavaScript. El panel de auditoría se ha actualizado a la versión , que incluye nuevas métricas como Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS) y Total Blocking Time (TBT).
- En el panel de evaluación de rendimiento se muestra información sobre . En caso de que el usuario navegue por la página, se muestra el tiempo relativo al inicio de la navegación, en lugar del inicio de la grabación.
Además de las novedades y correcciones de errores, en la nueva versión se han eliminado . Muchas de las vulnerabilidades fueron identificadas a través de pruebas automatizadas con herramientas de , , , y . No se han encontrado problemas críticos que puedan eludir todos los niveles de protección del navegador y ejecutar código en el sistema fuera del entorno sandbox. En el marco del programa de recompensas monetarias por la detección de vulnerabilidades para esta versión, la empresa Google ha pagado 14 premios por un total de 10,000 dólares (un premio de $5,000, tres premios de $1,000 y cuatro premios de $500). El monto de 6 recompensas aún no se ha determinado.
Fuente: opennet.ru
