Google lanzamiento del navegador web ... Simultaneamente lanzamiento estable de un proyecto libre , que es la base de Chrome. navegador cromo el uso de logotipos de Google, la posibilidad de descargar un módulo Flash a pedido, la presencia de un sistema para enviar notificaciones en caso de falla, módulos para reproducir contenido de video protegido, un sistema para instalar actualizaciones automáticamente y transmitir durante la búsqueda . El próximo lanzamiento de Chrome 75 está previsto para el 4 de junio.
:
- Cuando ocurre el evento onUnload, que se llama cuando se cierra la página, ahora mostrar ventanas emergentes (la llamada window.open() está bloqueada), lo que protegerá a los usuarios de verse obligados a abrir páginas publicitarias después de cerrar sitios dudosos;
- En el motor JavaScript ha aparecido un nuevo régimen (marca "—jitless"), que permite ejecutar JavaScript sin usar JIT (solo se usa el intérprete) y sin asignar memoria ejecutable durante la ejecución del código. Deshabilitar JIT puede ser útil para mejorar la seguridad cuando se trabaja con aplicaciones web potencialmente peligrosas, así como para garantizar compilaciones en plataformas que prohíben el uso de JIT (por ejemplo, iOS, algunos televisores inteligentes y consolas de juegos). Cuando JIT está deshabilitado, la ejecución de JavaScript el rendimiento disminuye un 40% en la prueba Speedometer 2.0 y un 80% en la prueba Web Tooling Benchmark, pero al simular el trabajo con YouTube, se observó una disminución en el rendimiento de solo un 6%. El consumo de memoria disminuye ligeramente, solo un 1.7%;
- V8 también ofrece una gran cantidad de nuevas optimizaciones. Por ejemplo, la ejecución de llamadas a funciones en las que el número de parámetros realmente pasados no se corresponde con el número de argumentos especificados al definir la función se ha acelerado en un 60%. Se ha acelerado el acceso a las propiedades DOM mediante la función get, lo que tiene un impacto positivo en el rendimiento del marco Angular. Se aceleró el análisis de JavaScript: la optimización del decodificador UTF-8 hizo posible aumentar el rendimiento del analizador en modo streaming (analizando mientras se carga) en un 8%, y la eliminación de operaciones de deduplicación innecesarias dio un aumento de otro 10.5%;
- Se ha trabajado para reducir el consumo de memoria del motor JavaScript.
Se agregó código para borrar el caché de código de bytes, que ocupa aproximadamente el 15 % del tamaño total del montón. Se ha agregado una etapa al recolector de basura para expulsar del caché el código de bytes compilado con poca frecuencia para funciones que se utilizan o funciones que solo se invocan durante la inicialización. La decisión de limpiar se toma en función de nuevos contadores que tienen en cuenta la última vez que se accedió al código de bytes. Este cambio redujo el consumo de memoria entre un 5 % y un 15 % sin afectar negativamente al rendimiento. Además, el compilador de código de bytes excluye la generación de código obviamente no utilizado, por ejemplo, que sigue a un retorno o interrupción (si no hay una transición de salto hacia él);
- Para ensamblaje web soporte para subprocesos y operaciones atómicas (API WebAssembly Threads y WebAssembly Atomics);
- Para la entrega separada de scripts, se agregó soporte para el encabezado "#!", que determina el intérprete que se ejecutará. Por ejemplo, al igual que otros lenguajes de secuencias de comandos, un archivo JavaScript podría verse así:
#!/usr/bin/env nodo
consola.log(42); - Se ha agregado una nueva consulta de medios a CSS "“, permitiendo al sitio determinar el estado de la configuración en el sistema operativo relacionada con la desactivación de efectos animados. Utilizando la solicitud sugerida, el propietario del sitio descubrir que el usuario ha desactivado los efectos animados y también desactivar varias funciones de animación en el sitio, por ejemplo, eliminar el efecto de vibración de los botones utilizados para llamar la atención;
- Además de la capacidad de definir campos públicos introducida en Chrome 72 Marcar campos como privados, después de lo cual el acceso a sus valores estará abierto solo dentro de la clase. Para marcar un campo como privado, agregue un signo "#" antes del nombre del campo. Al igual que los campos públicos, las propiedades privadas no requieren el uso explícito de un constructor.
- Se ha agregado el encabezado HTTP Feature-Policy, que le permite controlar el comportamiento de la API y habilitar ciertas funciones (por ejemplo, puede habilitar el modo de operación sincrónica de XMLHttpRequest o deshabilitar la API de geolocalización). para controlar la actividad de determinadas oportunidades. Para los desarrolladores, hay dos nuevos métodos document.featurePolicy y frame.featurePolicy, que ofrecen tres funciones:
AllowFeatures() para obtener una lista de funciones permitidas para el dominio actual, AllowFeature() para verificar selectivamente si funciones específicas están habilitadas y getAllowlistForFeature() para devolver una lista de dominios para los cuales se permite una función específica en la página actual; - Se agregó soporte experimental (“chrome://flags#enable-text-fragment-anchor”) para el modo , que le permite formar enlaces a palabras o frases individuales, sin especificar explícitamente etiquetas en el documento utilizando la etiqueta "un nombre" o la propiedad "id". Para enviar un enlace, se ofrece un parámetro especial "#targetText=", en el que puede especificar el texto para la transición. Se permite especificar una máscara que incluya frases que indiquen el principio y el final del fragmento utilizando una coma como separador (por ejemplo, “ejemplo.com#targetText=start%20words, end%20words”);
- Se ha agregado una opción al constructor AudioContext. , que le permite configurar la frecuencia de muestreo para operaciones de audio a través de Web Audio API;
- Soporte de clase agregado , que proporciona métodos para analizar y procesar parámetros de idioma, región y estilo establecidos por la configuración regional, así como para leer y escribir etiquetas de extensión Unicode, guardando la configuración regional del usuario en un formato serializado;
- Mecanismo (SXG) ampliado con herramientas para distribuidores de contenido sobre errores en la descarga de contenido firmado, como problemas con la verificación de certificados. El manejo de errores se realiza a través de extensiones API. . Recuerde que SXG el propietario de un sitio, mediante una firma digital, autoriza la colocación de determinadas páginas en otro sitio, después de lo cual, si se accede a estas páginas en un segundo sitio, el navegador mostrará al usuario la URL del sitio original, a pesar de que que la página se cargó desde un host diferente;
- Se ha agregado un método a la clase TextEncoder. , que le permite escribir una cadena codificada directamente en un búfer preasignado. El método encodeInto() es una alternativa de alto rendimiento al método encode(), que requiere que se realice una operación de asignación de búfer cada vez que se accede a él.
- Trabajador en servicio almacenar en búfer la llamada client.postMessage() hasta que el documento esté listo. Los mensajes enviados a través de client.postMessage() se retendrán hasta que se genere el evento DOMContentLoaded, se establezca onmessage o se llame a startMessages();
- Según lo requerido por la especificación de transiciones CSS Eventos de ejecución de transición, cancelación de transición, inicio de transición y finalización de transición generados cuando una transición CSS se pone en cola, se cancela, comienza o finaliza su ejecución.
- Al especificar una codificación de caracteres incorrecta mediante overrideMimeType() o tipo MIME para XMLHttpRequest, ahora recurre a UTF-8 en lugar de Latin-1;
- La propiedad "permitir descargas sin activación del usuario", a través de la cual era posible descargar archivos automáticamente al procesar iframes, ha quedado obsoleta y se eliminará en una versión futura. En el futuro, se prohibirá iniciar descargas de archivos sin una acción explícita del usuario, ya que se ha utilizado activamente para abusar, forzando descargas e insertando partes de malware en la computadora del usuario. Se requerirá que el usuario haga clic en la misma página para iniciar la descarga. Originalmente se planeó eliminar la propiedad en Chrome 74, pero la eliminación fue hasta Chrome 76.
- Para plataforma Windows Se ha introducido un tema de interfaz oscuro opcional (en la versión anterior, el tema oscuro estaba preparado para macOS). Dado que el tema oscuro es casi idéntico al modo incógnito, se ha añadido un indicador especial en lugar del icono del perfil de usuario para resaltar el modo privado;
- Se ha agregado una oportunidad para usuarios corporativos. administrar la configuración del navegador del usuario a través de la consola de administración de Google;
Además de las innovaciones y correcciones de errores, la nueva versión elimina . Muchas de las vulnerabilidades se identificaron como resultado de herramientas de prueba automatizadas. , , , и . 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 para pagar recompensas en efectivo por descubrir vulnerabilidades para la versión actual, Google pagó 19 premios por un monto de $26837 (cuatro premios de $3000, cuatro premios de $2000, un premio de $1337, cuatro premios de $1000, tres premios de $500). Aún no se ha determinado el tamaño de las 4 recompensas.
Fuente: opennet.ru

