Google a publié le navigateur web Chrome 91. Parallèlement, une version stable du projet gratuit Chromium, base de Chrome, est disponible. Le navigateur Chrome se distingue par l'utilisation des logos Google, la présence d'un système de notifications en cas de plantage, des modules de lecture de contenu vidéo protégé (DRM), un système d'installation automatique des mises à jour et la transmission des paramètres RLZ lors des recherches. La prochaine version de Chrome 92 est prévue pour le 20 juillet.
Changements clés dans Chrome 91 :
- Nous avons implémenté la possibilité d'arrêter l'exécution de JavaScript dans un groupe d'onglets réduit. Chrome 85 permet désormais de regrouper les onglets en groupes, qui peuvent être associés à une couleur et un libellé spécifiques. Cliquer sur un libellé de groupe réduit les onglets qui lui sont associés, laissant un seul libellé à leur place (cliquer à nouveau sur le libellé agrandit le groupe). Dans la nouvelle version, afin de réduire la charge CPU et d'économiser de l'énergie, nous avons implémenté la mise en pause de l'activité dans les onglets réduits. Les seules exceptions concernent les onglets qui diffusent de l'audio, utilisent les verrous Web ou l'API IndexedDB, sont connectés à un périphérique USB ou capturent de la vidéo, de l'audio ou du contenu de fenêtre. Ce changement sera mis en œuvre progressivement, en commençant par un petit pourcentage d'utilisateurs.
- La prise en charge d'une méthode d'accord de clés résistante aux attaques quantiques est incluse. Les ordinateurs quantiques résolvent beaucoup plus rapidement le problème de la factorisation d'un nombre naturel en facteurs premiers, qui sous-tend les algorithmes de chiffrement asymétrique modernes et ne peut être résolu efficacement sur des processeurs classiques. Le plugin CECPQ1.3 (Combined Elliptic-Curve and Post-Quantum 2) est fourni pour une utilisation dans TLSv2, combinant le mécanisme classique d'échange de clés X25519 avec le schéma HRSS basé sur l'algorithme NTRU Prime développé pour les cryptosystèmes post-quantiques.
- La prise en charge des protocoles TLS 1.0 et TLS 1.1 a été complètement abandonnée et déconseillée par l'IETF (Internet Engineering Task Force). En particulier, la possibilité de revenir à TLS 1.0/1.1 en modifiant la politique SSLVersionMin a été supprimée.
- Dans les assemblages pour la plateforme Linux включено использование режима «DNS поверх HTTPS» (DoH, DNS over HTTPS), который ранее был доведён до пользователей Windows, macOS, ChromeOS и Android. DNS-over-HTTPS будет автоматически активирован для пользователей, в настройках которых указаны DNS-провайдеры, поддерживающие данную технологию (для DNS-over-HTTPS используется тот же провайдер, который применялся для DNS). Например, если у пользователя в системных настройках указан DNS 8.8.8.8, то в Chrome будет активирован DNS-over-HTTPS сервис Google («https://dns.google.com/dns-query»), если DNS — 1.1.1.1, то DNS-over-HTTPS сервис Cloudflare («https://cloudflare-dns.com/dns-query») и т.п.
- Le port 10080, utilisé par Amanda Backup et VMWare vCenter, a été ajouté à la liste des ports réseau interdits. Les ports 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 et 6566 étaient déjà bloqués. Pour les ports de la liste noire, l'envoi de requêtes HTTP, HTTPS et FTP est bloqué afin de se protéger contre une attaque NAT slipstreaming. Cette attaque permet, lors de l'ouverture d'une page web spécialement préparée dans un navigateur, d'établir une connexion réseau depuis le serveur de l'attaquant vers n'importe quel port UDP ou TCP du système de l'utilisateur, malgré l'utilisation d'une plage d'adresses internes (192.168.xx, 10.xxx).
- Предоставлена возможность настройки автоматического запуска обособленных web-приложений (PWA — Progressive Web Apps) при входе пользователя в систему (Windows и macOS). Автозапуск настраивается на странице chrome://apps. Функциональность пока тестируется на небольшом проценте пользователей, а для остальных требует активации настройки «chrome://flags/#enable-desktop-pwas-run-on-os-login».
- Dans le cadre de la conversion du navigateur à une terminologie inclusive, le fichier « master_preferences » a été renommé « initial_preferences ». Pour des raisons de compatibilité, la prise en charge de « master_preferences » restera active pendant un certain temps. Les termes « liste blanche », « liste noire » et « native » ont déjà été supprimés.
- Le mode de navigation sécurisée améliorée, qui active des contrôles supplémentaires pour se protéger contre le phishing, les activités malveillantes et autres menaces sur le Web, permet désormais d'envoyer les fichiers téléchargés pour vérification côté Google. De plus, la navigation sécurisée améliorée prend en compte les jetons associés à un compte Google pour détecter les tentatives de phishing et envoie les valeurs de l'en-tête Referrer aux serveurs Google afin de vérifier les redirections depuis un site malveillant.
- В редакции для платформы Android улучшено оформление элементов web-форм, которые были оптимизированы для использования на сенсорных экранах и системах для людей с ограниченными возможностями (для настольных систем оформление было переделано в Chrome 83). Целью переработки стала унификация оформления элементов форм и устранение несоответствия стилей — ранее часть элементов форм была спроектирована в соответствии с элементами интерфейса операционных систем, а часть — в соответствии с наиболее популярными стилями. Из-за этого разные элементы по разному подходили для сенсорных экранов и систем для людей с ограниченными возможностями.


- Ajout d'un sondage d'opinion utilisateur qui s'affiche lors de l'ouverture des paramètres de Privacy Sandbox (chrome://settings/privacySandbox).
- Lorsque vous exécutez Android-версии Chrome на планшетных ПК с большим экраном обеспечен запрос десктоп-версии сайта, а не редакции для мобильных устройств. Изменить поведение можно при помощи настройки «chrome://flags/#request-desktop-site-for-tablets».
- Le code de rendu des tableaux a été retravaillé, ce qui a résolu les problèmes d'incohérences dans le comportement de la sortie des tableaux dans Chrome et Firefox/Safari.
- Le traitement des certificats de serveur de l'autorité de certification espagnole Camerfirma a été arrêté en raison d'incidents répétés liés à des violations dans la délivrance de certificats depuis 2017. La prise en charge des certificats clients est maintenue, le blocage s'applique uniquement aux certificats utilisés sur les sites pour HTTPS.
- La prise en charge de la segmentation du réseau a été maintenue afin de se prémunir contre les méthodes de suivi intersites qui utilisent le stockage d'identifiants dans des zones non destinées au stockage persistant (« supercookies »). Les ressources mises en cache étant stockées dans un espace de noms partagé, quel que soit le domaine d'origine, un site peut détecter le chargement de ressources provenant d'un autre site en vérifiant si la ressource est présente dans le cache. Cette protection repose sur le partitionnement du réseau, qui consiste à ajouter des correspondances supplémentaires avec les caches partagés. domaine, à partir de laquelle la page principale est ouverte, ce qui limite la portée du cache pour le suivi des scripts au seul site actuel (un script provenant d'une iframe ne pourra pas vérifier si la ressource a été chargée à partir d'un autre site).
La segmentation a pour conséquence une baisse de l'efficacité de la mise en cache, ce qui entraîne une légère augmentation du temps de chargement des pages (maximum 1.32 %, mais de 80 à 0.09 % pour 0.75 % des sites). Pour tester le mode de segmentation, exécutez le navigateur avec l'option « --enable-features=PartitionConnectionsByNetworkIsolationKey, PartitionExpectCTStateByNetworkIsolationKey, PartitionHttpServerPropertiesByNetworkIsolationKey, PartitionNelAndReportingByNetworkIsolationKey, PartitionSSLSessionsByNetworkIsolationKey, SplitHostCacheByNetworkIsolationKey ».
- Ajout de l'API REST externe VersionHistory (https://versionhistory.googleapis.com/v1/chrome), grâce à laquelle vous pouvez obtenir des informations sur les versions de Chrome par rapport aux plates-formes et aux branches, ainsi que l'historique des mises à jour du navigateur.
- Dans les iframes chargés à partir de domaines autres que le domaine de la page de base, l'affichage des boîtes de dialogue JavaScript alert(), confirm() et prompt() est interdit, ce qui protégera les utilisateurs des tentatives d'un script tiers visant à afficher des messages sous prétexte que la notification a été affichée par le site principal.
- L'API SIMD de WebAssembly a été stabilisée et devient la valeur par défaut pour l'utilisation des instructions SIMD vectorielles dans les applications WebAssembly. Pour garantir l'indépendance de la plateforme, un nouveau type 128 bits, capable de représenter différents types de données compressées, ainsi que plusieurs opérations vectorielles de base pour le traitement de ces données, sont fournis. SIMD permet d'améliorer les performances en parallélisant le traitement des données et sera utile lors de la compilation de code natif vers WebAssembly.
- Plusieurs nouvelles API ont été ajoutées au mode Origin Trials (fonctionnalités expérimentales nécessitant une activation séparée). Origin Trial implique la possibilité de travailler avec l'API spécifiée à partir d'applications téléchargées depuis localhost ou 127.0.0.1, ou après s'être enregistré et avoir reçu un jeton spécial valable pour une durée limitée pour un site spécifique.
- WebTransport est un protocole et une API JavaScript associée permettant d'envoyer et de recevoir des données entre un navigateur et un serveur web. serveurLe canal de communication est organisé sur HTTP/3 en utilisant le protocole QUIC comme transport, qui, à son tour, est un complément au protocole UDP, prenant en charge le multiplexage de plusieurs connexions et fournissant des méthodes de chiffrement équivalentes à TLS/SSL.
WebTransport peut remplacer les mécanismes WebSockets et RTCDataChannel, offrant des fonctionnalités supplémentaires telles que le multi-streaming, les flux unidirectionnels, la livraison désordonnée, ainsi que les modes de livraison fiables et non fiables. De plus, WebTransport peut remplacer le mécanisme Server Push, abandonné par Google dans Chrome.
- Une interface déclarative permettant de définir des liens vers des applications Web autonomes (PWA), activée via le paramètre capture_links dans le manifeste de l'application Web, qui permet aux sites d'ouvrir automatiquement une nouvelle fenêtre PWA lorsqu'un lien vers l'application est cliqué, ou de passer à un mode fenêtre unique similaire aux applications mobiles.
- L'API WebXR Plane Detection a été ajoutée, fournissant des informations sur les surfaces planes dans un environnement 3D virtuel. Cette API vous permet d'éviter le traitement gourmand en ressources des données obtenues via l'appel MediaDevices.getUserMedia(), en utilisant vos propres implémentations d'algorithmes de vision industrielle. Rappelons que l'API WebXR permet d'unifier le travail avec différentes classes d'appareils de réalité virtuelle, des casques 3D fixes aux solutions basées sur des appareils mobiles.
- WebTransport est un protocole et une API JavaScript associée permettant d'envoyer et de recevoir des données entre un navigateur et un serveur web. serveurLe canal de communication est organisé sur HTTP/3 en utilisant le protocole QUIC comme transport, qui, à son tour, est un complément au protocole UDP, prenant en charge le multiplexage de plusieurs connexions et fournissant des méthodes de chiffrement équivalentes à TLS/SSL.
- Prise en charge implémentée pour travailler avec WebSockets sur HTTP/2 (RFC 8441), qui n'est valable que pour les requêtes sécurisées vers WebSockets et en présence d'une connexion HTTP/2 déjà établie avec le serveur, dans laquelle la prise en charge de l'extension « WebSockets sur HTTP/2 » est annoncée.
- Les limites de précision des valeurs de temporisation renvoyées par l'appel performance.now() ont été uniformisées sur toutes les plateformes prises en charge et adaptées pour tenir compte de l'isolement éventuel des gestionnaires dans des processus distincts. Par exemple, sur les systèmes de bureau, la précision du traitement dans des contextes non isolés a été réduite de 5 à 100 microsecondes.
- Les versions de bureau prennent désormais en charge la lecture de fichiers à partir du presse-papiers (l'écriture de fichiers dans le presse-papiers est toujours interdite). async function onPaste(e) { let file = e.clipboardData.files[0]; let contents = await file.text(); }
- CSS implémente la règle @counter-style, qui vous permet de définir votre propre style pour les compteurs et les étiquettes dans les listes numérotées.
- Les pseudo-classes CSS ":host()" et ":host-context()" ont été mises à jour pour permettre le passage de valeurs uniques de sélecteurs composés ( ) en plus des listes de sélecteurs ( ).
- Interface GravitySensor ajoutée pour déterminer les données volumétriques (le long de trois axes de coordonnées) du capteur de gravité.
- L'API d'accès au système de fichiers offre la possibilité de définir les recommandations de nom de fichier et de répertoire proposées dans la boîte de dialogue de création ou d'ouverture de fichier.
- Dans les iframes chargées depuis d'autres domaines, l'accès à l'API WebOTP est autorisé si l'utilisateur accorde les autorisations appropriées. WebOTP permet de lire les codes de confirmation à usage unique envoyés par SMS.
- Разрешено предоставление совместного доступа к учётным данным для сайтов, связанных при помощи механизма DAL (Digital Asset Links), позволяющего ассоциировать Android-приложения с сайтами для упрощения входа.
- Les modules JavaScript sont autorisés dans Service Worker. En spécifiant le type « module » lors de l'appel du constructeur, les scripts spécifiés seront chargés en tant que modules et pourront être importés dans le contexte du worker. La prise en charge des modules facilite le partage de code entre les pages web et les Service Workers.
- JavaScript offre la possibilité de tester l'existence de champs privés dans un objet en utilisant la syntaxe « #foo in obj ». class A { static test(obj) { console.log(#foo in obj); } #foo = 0; } A.test(new A()); // true A.test({}); // false
- JavaScript permet par défaut l'utilisation du mot-clé wait dans les modules au niveau supérieur, ce qui permet aux appels asynchrones d'être intégrés plus facilement dans le processus de chargement des modules et évite de les envelopper dans une « fonction asynchrone ». Par exemple, au lieu de (async function() { wait Promise.resolve(console.log('test')); }()); vous pouvez maintenant écrire wait Promise.resolve(console.log('test'));
- Le moteur JavaScript V8 a amélioré l'efficacité de la mise en cache des modèles, ce qui a entraîné une augmentation de 4.5 % du benchmark Speedometer2-FlightJS.
- De nombreuses améliorations ont été apportées aux outils destinés aux développeurs web. Un nouveau mode Inspecteur de mémoire a été ajouté, permettant d'examiner les données ArrayBuffer et la mémoire Wasm.

Un indicateur de performance récapitulatif a été ajouté au panneau Performance, vous permettant de juger si le site nécessite une optimisation ou non.

Lors de la prévisualisation des images dans le panneau Éléments et le panneau Analyse des requêtes réseau, des informations sur le rapport hauteur/largeur de l'image, les paramètres de rendu et la taille du fichier sont fournies.

Le panneau d'inspection du réseau vous permet désormais de modifier les valeurs acceptées de l'en-tête Content-Encoding.

Le panneau Styles vous permet désormais d'afficher rapidement la valeur calculée lors de la navigation dans les paramètres CSS en sélectionnant « Afficher la valeur calculée » dans le menu contextuel.

Outre les innovations et les corrections de bugs, la nouvelle version corrige 32 vulnérabilités. Nombre d'entre elles ont été identifiées grâce à des tests automatisés avec les outils AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer et AFL. Aucun problème critique susceptible de contourner tous les niveaux de protection du navigateur et d'exécuter du code hors de l'environnement sandbox n'a été identifié. Dans le cadre du programme de récompenses financières pour la découverte de vulnérabilités pour la version actuelle, Google a versé 21 récompenses pour un total de 92000 20000 $ (une récompense de 15000 7500 $, une récompense de 5000 3000 $, quatre récompenses de 1000 500 $, trois récompenses de 5 XNUMX $, trois récompenses de XNUMX XNUMX $, deux récompenses de XNUMX XNUMX $ et deux récompenses de XNUMX $). Le montant des cinq récompenses n'a pas encore été déterminé.
Source: opennet.ru







