Google a présenté la version 96 de son navigateur web Chrome. En même temps, une version stable du projet open source Chromium, qui constitue la base de Chrome, est disponible. Le navigateur Chrome se distingue par l'utilisation des logos de Google, la présence d'un système d'envoi de notifications en cas de plantage, des modules pour la lecture de contenu vidéo protégé (DRM), un système de mise à jour automatique et la transmission des paramètres RLZ lors des recherches. La branche Chrome 96 sera accompagnée pendant 8 semaines dans le cadre du cycle Extended Stable. La prochaine version de Chrome 97 est prévue pour le 4 janvier.
Les principales modifications dans Chrome 96 :
- Dans la barre des favoris, affichée sous la barre d'adresse, le bouton Apps (Services), qui permettait d'ouvrir la page «chrome://apps» avec la liste des services et applications web installés, est par défaut masqué.

- La prise en charge de la plateforme Android 5.0 et des versions antérieures a été interrompue.
- Ajout de la prise en charge de la redirection de HTTP vers HTTPS en utilisant DNS (lors de la détermination adresses IP en plus des enregistrements DNS «A» et «AAAA», un enregistrement DNS «HTTPS» est également demandé, ce qui permettra au navigateur de se connecter directement au site via HTTPS).
- Dans l'édition pour systèmes de bureau, le cache de retour (Back-forward cache), qui permet une transition instantanée lors de l'utilisation des boutons «Précédent» et «Suivant», a été étendu pour prendre en charge la navigation sur les pages précédemment consultées après l'ouverture d'un autre site.
- Un paramètre «chrome://flags#force-major-version-to-100» a été ajouté pour tester les éventuelles pannes de fonctionnement des sites après que le navigateur atteigne une version consistant en trois chiffres au lieu de deux (à l'époque, après la sortie de Chrome 10, de nombreux problèmes sont apparus dans les bibliothèques d'analyse User-Agent). Lors de l'activation de cette option, la version 100 (Chrome/100.0.4664.45) commence à être fournie dans l'en-tête User-Agent.
- Dans les versions pour la plateforme Windows, les données liées au fonctionnement des services réseau (cookies, etc.) ont été déplacées vers un sous-dossier séparé «Network» dans le cadre de la préparation à la mise en œuvre du mécanisme d'isolement réseau (Network Sandbox).
- En mode Origin Trials (fonctionnalités expérimentales nécessitant une activation distincte), plusieurs nouvelles API ont été ajoutées. L'Origin Trial permet aux applications chargées depuis localhost ou 127.0.0.1 d'accéder à l'API spécifiée, ou d'accéder à l'API après enregistrement et obtention d'un jeton spécial, valable pour une durée limitée pour un site spécifique.
- Un objet FocusableMediaStreamTrack (qui sera renommé en BrowserCaptureMediaStreamTrack) a été proposé, prenant en charge la méthode focus(), grâce à laquelle les applications réalisant la capture du contenu des fenêtres ou des onglets (par exemple, des programmes de diffusion de contenu de fenêtres lors de vidéoconférences) peuvent obtenir des informations sur le focus d'entrée et suivre ses changements.
- Un mécanisme de Priority Hints a été mis en œuvre, permettant de définir l'importance des ressources à charger via un attribut supplémentaire «importance» dans des balises telles que iframe, img et link. L'attribut peut prendre les valeurs «auto», «low» et «high», qui influencent l'ordre de chargement des ressources externes par le navigateur.
- L'en-tête Cross-Origin-Embedder-Policy, qui régule le mode d'isolation Cross-Origin et permet de définir des règles pour une utilisation sécurisée des opérations privilégiées sur la page, a été mis à jour pour prendre en charge le paramètre «credentialless» afin de désactiver la transmission d'informations liées aux identifiants, telles que les cookies et les certificats clients.
- Un nouveau pseudo-classe CSS «:autofill» a été proposé, permettant de détecter le remplissage automatique des champs dans la balise input par le navigateur (lorsqu'un remplissage manuel est effectué, le sélecteur ne déclenche pas).
- Pour éviter les boucles de requêtes, les propriétés CSS writing-mode, direction et backgrounds ne s'appliquent plus au viewport lorsqu'une propriété CSS contain (CSS Containment) est appliquée aux balises HTML ou BODY.
- La propriété CSS font-synthesis a été ajoutée, permettant de contrôler la possibilité de synthèse de styles (oblique, bold et small-cap) qui sont absents de la famille de polices sélectionnée.
- Dans l'API PerformanceEventTiming, qui permet d'obtenir des informations supplémentaires pour mesurer et optimiser la réactivité de l'interface, un attribut InteractionID a été ajouté avec l'identifiant de l'interaction utilisateur. Cet identifiant permet de lier différentes métriques à une seule action utilisateur, par exemple, lorsqu'un utilisateur touche l'écran tactile, plusieurs événements sont générés, tels que pointerdown, mousedown, pointerup, mouseup et click, et l'InteractionID permet de relier tous ces événements à un seul toucher.
- Un nouveau type de média-query a été ajouté — «prefers-contrast» pour adapter le contenu de la page aux paramètres de contraste définis dans le système d'exploitation (par exemple, l'activation d'un mode haute contraste).
- Pour les applications PWA isolées, le manifeste a été mis à jour pour ajouter un champ facultatif «id» avec un identifiant global d'application (si ce champ n'est pas spécifié, l'URL de démarrage est utilisée pour l'identification).
- Pour les applications PWA autonomes, il est possible de s'enregistrer comme gestionnaires d'URL. Par exemple, l'application music.example.com peut s'enregistrer comme gestionnaire d'URL https://*.music.example.com, et tous les liens externes provenant d'autres applications, comme des messageries ou des clients de messagerie, ouvriront cette application PWA plutôt qu'un nouvel onglet dans le navigateur.
- Une directive CSP (Content Security Policy) wasm-unsafe-eval a été ajoutée pour contrôler la possibilité d'exécution de code en WebAssembly. L'application de la directive CSP script-src couvre désormais également WebAssembly.
- WebAssembly a ajouté la prise en charge des types de référence (type externref). Les modules WebAssembly peuvent maintenant stocker dans des variables et transmettre en tant qu'arguments des références aux objets JavaScript et DOM.
- La méthode de paiement « basic-card » dans PaymentMethodData a été déclarée obsolète, permettant de gérer tout type de cartes via un identifiant unique, sans lien vers des types de données spécifiques. Il est recommandé d'utiliser des méthodes alternatives telles que Google Pay, Apple Pay et Samsung Pay.
- Lors de l'utilisation de l'API U2F (Cryptotoken) par un site, un avertissement s'affichera pour informer l'utilisateur de l'obsolescence de cette interface. L'API U2F sera désactivée par défaut dans la version 98 de Chrome et complètement supprimée dans Chrome 104. Il est conseillé d'utiliser l'API Web Authentication à la place.
- Des améliorations ont été apportées aux outils pour les développeurs web. Une nouvelle section « Aperçu CSS » (CSS Overview) a été ajoutée, offrant un résumé des informations sur les couleurs, les polices, les déclarations inutilisées et les expressions médias, ainsi que des problèmes potentiels. Les opérations de modification et de copie de CSS ont été améliorées. Dans le panneau Styles, une option pour copier les définitions CSS sous forme d'expressions JavaScript a été ajoutée au menu contextuel. Dans le panneau d'inspection des requêtes réseau, un onglet Payload a été ajouté pour analyser les paramètres de requête. La console web propose désormais une option pour masquer toutes les erreurs CORS (Cross-Origin Resource Sharing) et assure l'affichage de la trace de la pile pour les fonctions asynchrones.

Outre les nouvelles fonctionnalités et corrections de bogues, la nouvelle version corrige 25 vulnérabilités. Beaucoup de vulnérabilités ont été identifiées grâce à des tests automatisés utilisant des outils comme AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer et AFL. Aucune faille critique permettant de contourner tous les niveaux de protection du navigateur et d'exécuter du code hors de l'environnement sandbox n'a été découverte. Dans le cadre du programme de récompense pour la découverte de vulnérabilités pour cette version, Google a versé 13 primes totalisant 60 000 dollars (une prime de 15 000 dollars, une prime de 10 000 dollars, deux primes de 7 500 dollars, une prime de 5 000 dollars, deux primes de 3 000 dollars, une prime de 2 500 dollars, deux primes de 2 000 dollars, deux primes de 1 000 dollars et une prime de 500 dollars). Le montant de 5 primes reste à déterminer.
Source : opennet.ru


