Google a prĂ©sentĂ© la version du navigateur web Chrome 105. En mĂȘme temps, une version stable du projet libre Chromium est disponible, qui constitue la base de Chrome. Le navigateur Chrome se distingue de Chromium par l'utilisation des logos de Google, la prĂ©sence d'un systĂšme d'envoi de notifications en cas de crash, des modules pour la lecture de contenu vidĂ©o protĂ©gĂ© contre la copie (DRM), un systĂšme de mise Ă jour automatique, une isolation Sandbox toujours active, la fourniture de clĂ©s pour l'API Google et le passage des paramĂštres RLZ lors des recherches. Pour ceux qui ont besoin de plus de temps pour rĂ©aliser les mises Ă jour, une branche Extended Stable est maintenue, accompagnĂ©e de 8 semaines de support. La prochaine version de Chrome 106 est prĂ©vue pour le 27 septembre.
Les principales modifications dans Chrome 105Â :
- La prise en charge des applications web spĂ©cialisĂ©es Chrome Apps a Ă©tĂ© interrompue, remplacĂ©e par des applications web autonomes basĂ©es sur la technologie Progressive Web Apps (PWA) et les API Web standard. Initialement, Google avait annoncĂ© son intention d'abandonner les Chrome Apps dĂšs 2016 et prĂ©voyait de cesser leur support d'ici 2018, mais a ensuite reportĂ© ce plan. Dans Chrome 105, une alerte apparaĂźtra lors de la tentative d'installation des applications Chrome Apps, mais ces applications pourront toujours ĂȘtre exĂ©cutĂ©es. Dans Chrome 109, la possibilitĂ© d'exĂ©cuter des Chrome Apps sera dĂ©sactivĂ©e.
- Une isolation supplĂ©mentaire du processus «renderer», responsable du rendu, a Ă©tĂ© mise en place. Ce processus est dĂ©sormais exĂ©cutĂ© dans un conteneur supplĂ©mentaire (App Container), mis en Ćuvre au-dessus du systĂšme d'isolation sandbox existant. En cas d'exploitation d'une vulnĂ©rabilitĂ© dans le code de rendu, ces nouvelles restrictions empĂȘcheront un attaquant d'accĂ©der au rĂ©seau en bloquant les appels systĂšme liĂ©s aux capacitĂ©s rĂ©seau.
- Un stockage unifiĂ© propre pour les certificats racine des autoritĂ©s de certification (Chrome Root Store) a Ă©tĂ© mis en Ćuvre. Ce nouveau stockage n'est pas encore activĂ© par dĂ©faut et, jusqu'Ă la fin de son dĂ©ploiement, les certificats continueront Ă ĂȘtre vĂ©rifiĂ©s en utilisant le stockage spĂ©cifique Ă chaque systĂšme d'exploitation. La solution testĂ©e ressemble Ă l'approche de Mozilla, qui maintient un stockage racine de certificats indĂ©pendant pour Firefox, utilisĂ© comme premier maillon pour vĂ©rifier la chaĂźne de confiance des certificats lors de l'ouverture de sites en HTTPS.
- La fin du support de l'API Web SQL a été annoncée. Cette API, qui n'est pas standardisée, est rarement utilisée et nécessite une refonte pour répondre aux normes de sécurité modernes. Dans Chrome 105, l'accÚs à Web SQL à partir de code chargé sans HTTPS est interdit, et un avertissement de dépréciation de cette technologie a été ajouté dans DevTools. En 2023, l'API Web SQL sera supprimée. Pour les développeurs ayant besoin de fonctionnalités similaires, une alternative basée sur WebAssembly sera mise à disposition.
- Dans Chrome, la synchronisation a été interrompue pour les versions 73 et précédentes.
- Un visionneur de certificats intégré a été activé pour les plateformes macOS et Windows, remplaçant l'appel à l'interface fournie par le systÚme d'exploitation. Auparavant, le visionneur intégré n'était utilisé que dans les versions pour Linux et ChromeOS.
- La version pour Android a ajoutĂ© des paramĂštres pour gĂ©rer l'API « Topics & Interest Group », qui fait partie de l'initiative Privacy Sandbox et permet de dĂ©finir les catĂ©gories d'intĂ©rĂȘt des utilisateurs, en les utilisant Ă la place des cookies de suivi pour crĂ©er des groupes d'utilisateurs avec des intĂ©rĂȘts similaires sans identifier des individus. Dans la prĂ©cĂ©dente version, de tels paramĂštres avaient Ă©tĂ© ajoutĂ©s pour Linux, ChromeOS, macOS et Windows.
- Avec l'activation de la protection avancĂ©e du navigateur (Safe Browsing > Protection amĂ©liorĂ©e), un recueil de tĂ©lĂ©mĂ©trie sur les extensions installĂ©es, les appels Ă l'API et les connexions Ă des sites externes a Ă©tĂ© mis en Ćuvre. Ces donnĂ©es sont utilisĂ©es sur les serveurs de Google pour dĂ©tecter les activitĂ©s malveillantes et les violations des rĂšgles par les extensions du navigateur.
- La possibilitĂ© d'utiliser des caractĂšres non-ASCII dans les domaines spĂ©cifiĂ©s dans l'en-tĂȘte des cookies a Ă©tĂ© classĂ©e comme obsolĂšte et sera bloquĂ©e dans la version Chrome 106 (pour les domaines IDN, il convient d'indiquer les domaines au format punycode). Ce changement alignera le navigateur avec les exigences de RFC 6265bis et le comportement dĂ©jĂ appliquĂ© dans Firefox.
- L'API Custom Highlight a été proposé, permettant de modifier librement le style des zones de texte surlignées et ne se limitant pas au style fixe fourni par le navigateur pour les zones surlignées (::selection, ::inactive-selection) et la mise en évidence des erreurs de syntaxe (::spelling-error, ::grammar-error). Dans cette premiÚre version de l'API, il est possible de changer la couleur du texte et l'arriÚre-plan à l'aide des pseudo-éléments color et background-color, mais d'autres possibilités de personnalisation seront ajoutées par la suite.
Parmi les exemples de tĂąches pouvant ĂȘtre rĂ©solues grĂące Ă la nouvelle API, on Ă©voque l'ajout Ă des frameworks web fournissant des outils d'Ă©dition de texte, de mĂ©canismes de surlignage personnalisĂ©s, de diffĂ©rents surlignages lors de l'Ă©dition simultanĂ©e par plusieurs utilisateurs, de recherche dans des documents virtualisĂ©s et de marquage d'erreurs lors de la vĂ©rification orthographique. Alors qu'auparavant, la crĂ©ation d'un surlignage non standard nĂ©cessitait des manipulations complexes avec l'arbre DOM, l'API Custom Highlight offre des opĂ©rations prĂȘtes Ă l'emploi pour ajouter et supprimer la mise en Ă©vidence, sans affecter la structure DOM et en appliquant les styles en lien avec les objets Range.
- En CSS, la requĂȘte « @container » a Ă©tĂ© ajoutĂ©e, permettant de dĂ©finir le style des Ă©lĂ©ments en fonction de la taille de l'Ă©lĂ©ment parent. « @container » rappelle les requĂȘtes « @media », mais s'applique en lien non pas Ă la taille de toute la zone visible, mais Ă la taille du bloc (conteneur) dans lequel l'Ă©lĂ©ment est placĂ©, ce qui permet de dĂ©finir pour les Ă©lĂ©ments enfants une logique de sĂ©lection de style indĂ©pendante de l'emplacement exact sur la page.

- Ajout du pseudo-classe CSS «:has()» pour vérifier la présence d'un élément enfant dans un élément parent. Par exemple, «p:has(span)» englobe les éléments <p>, dans lesquels se trouve un élément <span>.
- L'API HTML Sanitizer a Ă©tĂ© ajoutĂ©e, permettant d'Ă©liminer du contenu les Ă©lĂ©ments influençant l'affichage et l'exĂ©cution lors de la sortie par la mĂ©thode setHTML(). Cette API peut ĂȘtre utile pour nettoyer les donnĂ©es externes en supprimant les balises HTML qui peuvent ĂȘtre utilisĂ©es pour rĂ©aliser des attaques XSS.
- Il est dĂ©sormais possible d'utiliser l'API Streams (ReadableStream) pour envoyer des requĂȘtes fetch avant que le corps de la rĂ©ponse ne soit chargĂ©, c'est-Ă -dire qu'il est possible de commencer Ă envoyer des donnĂ©es sans attendre la fin de la gĂ©nĂ©ration de la page.
- Pour les applications web progressives (PWA), il est possible de modifier l'apparence de la zone d'en-tĂȘte de la fenĂȘtre Ă l'aide des composants Window Controls Overlay, qui Ă©tendent la zone d'affichage de l'application web sur toute la fenĂȘtre et donnent Ă l'application web l'apparence d'une application de bureau classique. L'application web peut gĂ©rer le rendu et le traitement des entrĂ©es sur toute la fenĂȘtre, Ă l'exception de la zone superposĂ©e avec les boutons de contrĂŽle de la fenĂȘtre (fermeture, rĂ©duction, agrandissement).

- L'accĂšs aux Media Source Extensions Ă partir de workers dĂ©diĂ©s (dans le contexte DedicatedWorker) a Ă©tĂ© stabilisĂ©, ce qui peut ĂȘtre utilisĂ©, par exemple, pour amĂ©liorer la performance de la lecture en continu des donnĂ©es multimĂ©dias en crĂ©ant un objet MediaSource dans un worker distinct et en transmettant les rĂ©sultats de son travail Ă un HTMLMediaElement dans le thread principal.
- Dans l'API Client Hints, qui est en cours de dĂ©veloppement pour remplacer l'en-tĂȘte User-Agent et permet de fournir sĂ©lectivement des donnĂ©es sur des paramĂštres spĂ©cifiques du navigateur et du systĂšme (version, plateforme, etc.) uniquement aprĂšs demande, serveura Ă©tĂ© ajoutĂ©e la prise en charge de la propriĂ©tĂ© Sec-CH-Viewport-Height, permettant d'obtenir des informations sur la hauteur de la zone visible. Le format de balisage pour spĂ©cifier dans la balise «meta» les paramĂštres Client Hints pour les ressources externes a Ă©tĂ© modifiĂ© : Avant : Maintenant :
- Ajout de la possibilité de créer des gestionnaires d'événements globaux onbeforeinput (document.documentElement.onbeforeinput), permettant aux applications web de redéfinir le comportement lors de l'édition de texte dans des blocs ,
- Les capacitĂ©s de l'API Navigation, qui permet aux applications web d'intercepter les opĂ©rations de navigation dans la fenĂȘtre, d'initier des transitions et d'analyser l'historique des actions avec l'application, ont Ă©tĂ© Ă©tendues. De nouvelles mĂ©thodes intercept() pour intercepter les transitions et scroll() pour faire dĂ©filer jusqu'Ă une position donnĂ©e ont Ă©tĂ© ajoutĂ©es.
- Ajout d'une méthode statique Response.json(), qui permet de former le corps de la réponse à partir de données de type JSON.
- Des amĂ©liorations ont Ă©tĂ© apportĂ©es aux outils pour les dĂ©veloppeurs web. Dans le dĂ©bogueur, lors de l'activation d'un point d'arrĂȘt, il est maintenant possible d'Ă©diter le haut de la pile d'exĂ©cution sans interrompre la session de dĂ©bogage. Le panneau Recorder, qui permet d'enregistrer, de reproduire et d'analyser les actions de l'utilisateur sur la page, prend en charge les points d'arrĂȘt, la reproduction Ă©tape par Ă©tape et l'enregistrement des Ă©vĂ©nements de survol de la souris.
Le panneau d'analyse des performances a été enrichi de métriques LCP (Largest Contentful Paint) pour détecter les retards dans le rendu des éléments majeurs (visibles pour l'utilisateur) dans la zone visible, comme les images, les vidéos et les éléments de blocs. Dans le panneau Elements, une notation spéciale a été ajoutée pour les couches supérieures qui se superposent à d'autres contenus. Pour WebAssembly, il est désormais possible de charger des données de débogage au format DWARF.
En plus des nouvelles fonctionnalités et des corrections de bogues, la nouvelle version a éliminé 24 vulnérabilités. Beaucoup d'entre elles ont été découvertes grùce à des tests automatisés à l'aide des outils AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer et AFL. Aucun problÚme critique n'a été détecté, permettant de contourner tous les niveaux de protection du navigateur et d'exécuter du code en dehors de l'environnement sandbox. Dans le cadre du programme de récompense pour la découverte de vulnérabilités, Google a versé 21 primes totalisant 60500 dollars (une prime de 10000 dollars, une prime de 9000 dollars, une prime de 7500 dollars, une prime de 7000 dollars, deux primes de 5000 dollars, quatre primes de 3000 dollars, deux primes de 2000 dollars et une prime de 1000 dollars). Le montant de sept récompenses n'a pas encore été déterminé.
Source : opennet.ru


