Lanzamiento de Chrome 80

La empresa Google ha presentado la versión del navegador web Chrome 80. A la vez está disponible lanzamiento estable de un proyecto de código abierto Chromium, que sirve como base para Chrome. El navegador Chrome se distingue 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 de parámetros RLZ. La próxima versión de Chrome 81 está programada para el 17 de marzo.

Principales cambios en Chrome 80:

  • Se ha propuesto una función de agrupación de pestañas para un pequeño porcentaje de usuarios, que permite combinar varias pestañas similares en grupos visualmente separados. A cada grupo se le puede asignar su propio color y nombre. Los usuarios que no forman parte de la primera ola de activación pueden habilitar el soporte de agrupación a través de la opción «chrome://flags/#tab-groups».

    Lanzamiento de Chrome 80
  • Se ha añadido soporte para la función Scroll-To-Text, que permite crear enlaces a palabras o frases individuales, sin necesidad de especificar etiquetas en el documento utilizando la etiqueta «a name» o la propiedad «id». Se planea aprobar la sintaxis de estos enlaces como un estándar web, que actualmente se encuentra en la etapa borrador. La máscara para la transición (que en esencia realiza una búsqueda con desplazamiento) se separa del ancla habitual por el símbolo «:~:». Por ejemplo, al abrir el enlace «https://opennet.ru/52312/#:~:text=Chromе», la página se desplazará a la posición de la primera mención de la palabra «Chromе» y esta palabra será resaltada.
  • Se ha aplicado una restricción más estricta en la transmisión de cookies entre sitios, que para solicitudes no HTTPS prohíbe el procesamiento de cookies de terceros establecidas al acceder a sitios distintos del dominio de la página actual. Estas cookies se utilizan 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. Recordemos que para gestionar la transmisión de cookies se utiliza el atributo SameSite especificado en el encabezado Set-Cookie, que ahora tiene por defecto el valor «SameSite=Lax», limitando el envío de cookies para subconsultas entre sitios, como solicitudes de imagen o carga de contenido a través de un iframe de otro sitio. Los sitios pueden anular el modo SameSite predeterminado especificando explícitamente el valor SameSite=None al establecer cookies. Sin embargo, el valor SameSite=None para las cookies solo puede establecerse en el modo Secure (que se aplica a conexiones a través de HTTPS). El cambio comenzará de manera gradual utilizarse el 17 de febrero, primero para un pequeño porcentaje de usuarios y luego ampliando gradualmente la cobertura.
  • Se ha añadido protección contra las molestas notificaciones relacionadas con la confirmación de permisos. Dado que dicha actividad, como el spam de solicitudes para recibir notificaciones push, interrumpe el trabajo del usuario y desvía la atención a las acciones en los diálogos de confirmación, en Chrome 80 en lugar de un diálogo separado, ahora puede mostrarse un aviso en la barra de direcciones con una advertencia sobre el bloqueo de la solicitud de permisos, que luego se contraerá en un indicador con una imagen de campana tachada. Al hacer clic en el indicador, se puede activar o rechazar el permiso solicitado en cualquier momento conveniente. Automáticamente, el nuevo modo se activará selectivamente para los usuarios que anteriormente bloquearon tales solicitudes, así como para los sitios que registran un alto porcentaje de rechazo de solicitudes. Para activar el nuevo modo para todas las solicitudes, se ha añadido una opción especial en la configuración (chrome://flags/#quiet-notification-prompts).

    Lanzamiento de Chrome 80
  • Prohibido la apertura de ventanas emergentes (llamada al método window.open()) y el envío de solicitudes síncronas XMLHttpRequest en manejadores de eventos de cierre o ocultación de la página (unload, beforeunload, pagehide y visibilitychange);
  • Se ha propuesto un inicio protección contra la carga de contenido multimedia mixto (cuando en una página HTTPS se cargan recursos mediante el protocolo http://). En las páginas abiertas por HTTPS, ahora automáticamente se sustituirán los enlaces "http://" por "https://" en los bloques relacionados con la reproducción de archivos de audio y video. Si el recurso de audio o video no está disponible a través de https, su carga se bloquea (se puede marcar manualmente el bloqueo a través del menú disponible mediante el símbolo de candado en la barra de direcciones).

    Las imágenes continuarán cargándose sin cambios (la autoconversión se aplicará en Chrome 81), pero para la conversión a https o el bloqueo de imágenes, se han proporcionado a los desarrolladores de sitios las propiedades CSP upgrade-insecure-requests y block-all-mixed-content. Para scripts e iframe, el bloqueo de contenido mixto ya se había implementado anteriormente.

  • Se ha iniciado un desmantelamiento gradual del soporte FTP. Por defecto, el soporte para FTP se mantiene por ahora, pero se realizará un experimento en el que se desactivará el soporte de FTP para un cierto porcentaje de usuarios (para volver a activarlo se debe iniciar el navegador con la opción «—enable-ftp»). Recordemos que en versiones anteriores ya se desactivó la visualización en la ventana del navegador del contenido de los recursos cargados a través del protocolo «ftp://» (por ejemplo, se dejó de mostrar documentos HTML y archivos README), se prohibió el uso de FTP al cargar subrecursos desde documentos y se dejó de soportar proxies para FTP. Sin embargo, aún existía la posibilidad de cargar archivos a través de enlaces directos y de mostrar el contenido de directorios.
  • Se ha añadido
    la posibilidad de usar imágenes SVG vectoriales como icono del sitio (favicon).
  • Se ha añadido la opción de deshabilitar selectivamente ciertos tipos de datos enviados durante la sincronización entre navegadores en la configuración.
  • Se ha añadido una regla para usuarios empresariales administrados de manera centralizada BlockExternalExtensions, que permite prohibir la instalación de complementos externos en el dispositivo.
  • Se ha implementado la posibilidad comprobación simultánea de toda la cadena de propiedades o llamadas en JavaScript. Por ejemplo, al referirse a «db.user.name.length», anteriormente era necesario verificar paso a paso la definición de todos los componentes, por ejemplo, mediante «if (db && db.user && db.user.name)». Ahora, utilizando la operación «?.», se puede acceder al valor «db?.user?.name?.length» sin comprobaciones previas y tal acceso no producirá un error. En caso de problemas (si algún elemento se procesa como null o undefined), se devolverá el valor «undefined».
  • En JavaScript se ha propuesto un nuevo operador lógico de unión «????», que devuelve el operando derecho si el operando izquierdo es NULL o undefined, y viceversa. Por ejemplo, «const foo = bar ?? ‘cadena por defecto'» si bar es igual a null, devolverá la cadena o el valor de bar en caso contrario, incluyendo cuando bar es 0 y ‘’, a diferencia del operador «||».
  • En el modo Origin Trials (funciones experimentales que requieren una activación separada) se ha propuesto el API Content Indexing. La Prueba de Origen implica la posibilidad de trabajar con esta API desde aplicaciones cargadas desde localhost o 127.0.0.1, o después de registrarse y obtener un token especial que es válido por un tiempo limitado para un sitio web específico. API Indexación de Contenido, proporciona metadatos sobre el contenido que fue previamente almacenado en caché por aplicaciones web que funcionan en modo de Aplicaciones Web Progresivas (PWS). La aplicación puede almacenar varios datos en el lado del navegador, incluidos imágenes, videos y artículos, y al perder la conexión de red, puede utilizarlos mediante la API Cache Storage e IndexedDB. La API de Indexación de Contenido permite agregar, encontrar y eliminar esos recursos similares. En el navegador, esta API ya se utiliza para enumerar la lista de páginas y datos multimedia disponibles para ver sin conexión.

    Lanzamiento de Chrome 80
  • Se ha estabilizado y ahora se distribuye fuera de las pruebas de origen la interfaz de programación Contact Picker, que permite al usuario seleccionar entradas de la agenda y transmitir ciertos detalles sobre ellas al sitio web. Al solicitar, se determina la lista de propiedades que se deben obtener. Estas propiedades se muestran explícitamente al usuario, quien decide si transmitir estas propiedades o no. La API se puede utilizar, por ejemplo, en un cliente de correo web para seleccionar destinatarios para un correo enviado, en una aplicación web con función VoIP para iniciar una llamada a un número específico, o en una red social para buscar amigos ya registrados. En el marco de las pruebas de origen, se han propuesto algunas nuevas propiedades para el Selector de Contactos: además de los anteriormente disponibles, nombre completo, correo electrónico y número de teléfono, se ha añadido la posibilidad de transmitir la dirección postal y la imagen.
  • En Web Workers se propone un nuevo método para cargar módulos ECMAScript, que permite prescindir de la función importScripts(), la cual bloquea la ejecución del trabajador mientras se procesa el script importado y lo ejecuta en el contexto global. El nuevo método implica la creación de módulos especiales para Web Workers, que soportan los mecanismos estándar de importación de JavaScript y se pueden cargar dinámicamente sin bloquear la ejecución del trabajador. Para cargar módulos en el constructor del Worker, se prevé un nuevo tipo de recurso: 'module':

    const worker = new Worker('worker.js', {
    type: 'module'
    });

  • Se ha implementado una capacidad incorporada de procesamiento en JavaScript de flujos comprimidos, que no requiere el uso de bibliotecas externas. Para la compresión y descompresión, se han añadido las APIs CompressionStream y DecompressionStream. Se admite la compresión utilizando los algoritmos gzip y deflate.

    const compressionReadableStream
    = inputReadableStream.pipeThrough(new CompressionStream('gzip'));

  • Se ha agregado la propiedad CSS 'line-break: anywhere«, que permite quiebres en cualquier carácter tipográfico, incluidos los quiebres junto a signos de puntuación, espacios predefinidos (<pre>) y en medio de palabras. También se agregó la propiedad CSS «overflow-wrap: anywhere» que permite romper secuencias de caracteres no separables en cualquier lugar, si no se pudo encontrar una posición adecuada para el quiebre en la línea.
  • Para el contexto multimedia, que se procesa de manera cifrada, se implementó soporte para el método MediaCapabilities.decodingInfo(), que proporciona información sobre las capacidades del navegador relacionadas con la decodificación de contenido protegido (por ejemplo, este método se puede usar para seleccionar scripts de decodificación de alta calidad o de bajo consumo energético, teniendo en cuenta el ancho de banda disponible y el tamaño de la pantalla).
  • Se añadió el método HTMLVideoElement.getVideoPlaybackQuality(), a través del cual se puede obtener información sobre el rendimiento de la reproducción de video para ajustar la tasa de bits, la resolución y otros parámetros de video.
  • En la API Payment Handler, que simplifica la integración con los sistemas de pago existentes, se agregó la capacidad de delegar el manejo de la dirección y la información de contacto a un procesador de pagos externo (la aplicación del sistema de pagos puede tener información más precisa que el navegador).
  • Se agregó soporte para el encabezado HTTP Sec-Fetch-Dest, que permite enviar metadatos adicionales sobre el tipo de contenido relacionado con la solicitud (por ejemplo, para una solicitud a través de la etiqueta img se indica el tipo «image», para fuentes — «font», para scripts — «script», para estilos — «style», etc.). Sobre la base del tipo especificado, el servidor puede tomar medidas para protegerse contra algunos tipos de ataques (por ejemplo, es poco probable que un enlace a un manejador para transferencia de dinero se establezca a través de una etiqueta img, por lo que tales solicitudes no necesitan ser procesadas).
  • En el motor JavaScript V8 se ha Optimizado el almacenamiento de punteros en la memoria. En lugar de almacenar el valor completo de 64 bits, se asegura el almacenamiento solo de los bits bajos únicos del puntero. Esta optimización ha permitido reducir el consumo de memoria en la pila en un 40%, a costa de una reducción del rendimiento del 3-8%.
    Lanzamiento de Chrome 80

    Lanzamiento de Chrome 80
  • Cambios en las herramientas para desarrolladores web:
    • En la consola web se ha añadido la posibilidad de redefinir expresiones let y class.

      Lanzamiento de Chrome 80
    • Se han mejorado las herramientas de depuración de WebAssembly. Se agregó soporte para DWARF para la depuración paso a paso, la especificación de puntos de interrupción y el análisis de la traza de la pila en el código fuente donde está escrito el aplicativo WebAssembly.

      Lanzamiento de Chrome 80
    • Se ha mejorado el panel para analizar la actividad de red. Se ha agregado la posibilidad de ver la cadena de llamadas de scripts asociadas con la iniciación de la solicitud.

      Lanzamiento de Chrome 80

      Se han añadido nuevas columnas Path y URL, que muestran la ruta absoluta y la URL completa para cada recurso de red. Se ha asegurado que la solicitud seleccionada se destaque en el gráfico de resumen.

      Lanzamiento de Chrome 80
    • En la pestaña Condiciones de red, se ha añadido la opción para cambiar el parámetro User-Agent.

      Lanzamiento de Chrome 80
    • Se ha propuesto una nueva interfaz para configurar el panel de auditoría.
      Lanzamiento de Chrome 80
    • En la pestaña Cobertura se proporciona la opción de recopilar datos de cobertura para cada función o para cada bloque de código (estadísticas más detalladas, pero que requieren más recursos).

      Lanzamiento de Chrome 80
  • La acción de manifiesto AppCache (tecnología para organizar el funcionamiento de la aplicación web en modo offline) está limitada al directorio actual del sitio (si el manifiesto se cargó desde www.example.com/foo/bar/, la posibilidad de redefinir la URL solo será efectiva dentro de /foo/bar/). En Chrome 82, se planea eliminar completamente el soporte de AppCache. La razón dada es el deseo de eliminar uno de los vectores para realizar ataques relacionados con scripting entre sitios. En lugar de AppCache, se recomienda utilizar la API Caché.
  • Detenido soporte para la API obsoleta WebVR 1.1, que puede ser reemplazada por la API Dispositivo WebXR, que permite acceder a componentes para crear realidad virtual y aumentada y unificar el trabajo con diferentes clases de dispositivos, desde cascos de realidad virtual estacionarios hasta soluciones basadas en dispositivos móviles.
  • Los controladores de protocolo conectados a través de los métodos registerProtocolHandler() y unregisterProtocolHandler() ahora solo pueden funcionar en un contexto seguro (cuando se accede a través de HTTPS).

Además de las novedades y correcciones de errores, en la nueva versión se han eliminado 56 vulnerabilidades. Muchas de las vulnerabilidades fueron identificadas a través de pruebas automatizadas con herramientas de 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. En el marco del programa de recompensas por la detección de vulnerabilidades para la versión actual, Google ha pagado 37 premios por un total de 48 mil dólares (un premio de $10,000, tres premios de $5,000, tres premios de $3,000, cuatro premios de $2,000, tres premios de $1,000 y seis premios de $500). El monto de 17 recompensas aún no se ha determinado.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster