La sociĂ©tĂ© Google a prĂ©sentĂ© la version 104 de son navigateur web Chrome. En mĂȘme temps, la version stable du projet open source Chromium, qui constitue la base de Chrome, est disponible. 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 activation permanente de l'isolement Sandbox, la fourniture de clĂ©s pour l'API Google et la transmission des paramĂštres RLZ lors des recherches. Pour ceux qui ont besoin de plus de temps pour les mises Ă jour, une branche Extended Stable est maintenue, avec une pĂ©riode de support de 8 semaines. La prochaine version de Chrome, la 105, est prĂ©vue pour le 30 aoĂ»t.
Les principales modifications dans Chrome 104 :
- Une durĂ©e de vie maximale des cookies a Ă©tĂ© introduite : tous les nouveaux cookies ou ceux mis Ă jour seront automatiquement supprimĂ©s aprĂšs 400 jours, mĂȘme si la durĂ©e d'expiration spĂ©cifiĂ©e par les attributs Expires et Max-Age dĂ©passe 400 jours (pour de tels cookies, la durĂ©e de vie sera limitĂ©e Ă 400 jours). Les cookies créés avant l'introduction de cette limite conserveront leur durĂ©e de vie, mĂȘme si elle dĂ©passe 400 jours, mais seront limitĂ©s en cas de mise Ă jour. Ce changement rĂ©pond Ă de nouvelles exigences notĂ©es dans l'Ă©bauche d'une nouvelle spĂ©cification.
- Un blocage des requĂȘtes provenant d'iframes vers des URL faisant rĂ©fĂ©rence au systĂšme de fichiers local («filesystem://») a Ă©tĂ© ajoutĂ©.
- Pour accĂ©lĂ©rer le chargement des pages, une nouvelle optimisation a Ă©tĂ© ajoutĂ©e pour Ă©tablir une connexion avec l'hĂŽte cible au moment oĂč le lien est cliquĂ©, sans attendre que le bouton soit relĂąchĂ© ou que le doigt soit retirĂ© de l'Ă©cran tactile.
- Des paramĂštres ont Ă©tĂ© ajoutĂ©s pour gĂ©rer l'API «Topics & Interest Group», promue dans le cadre de l'initiative Privacy Sandbox, qui permet de dĂ©finir les catĂ©gories d'intĂ©rĂȘts des utilisateurs et de les utiliser Ă la place des cookies de suivi pour cibler des groupes d'utilisateurs partageant des intĂ©rĂȘts similaires sans identifier d'utilisateurs individuels. De plus, des dialogues informatifs, affichĂ©s une seule fois, ont Ă©tĂ© ajoutĂ©s pour expliquer Ă l'utilisateur la nature de cette technologie et lui proposer d'activer son support dans les paramĂštres.
- Les seuils pour limiter les appels imbriquĂ©s des minuteries setTimeout et setInterval, lancĂ©s avec un intervalle de moins de 4 ms (« setTimeout(âŠ, <4ms) »), ont Ă©tĂ© augmentĂ©s. Le limite total pour de tels appels est passĂ© de 5 Ă 100, permettant de ne pas rĂ©duire agressivement les appels uniques tout en empĂȘchant les abus qui pourraient affecter les performances du navigateur.
- L'envoi d'une demande de confirmation des autorisations CORS (Cross-Origin Resource Sharing) au serveur du site principal a Ă©tĂ© activĂ© avec l'en-tĂȘte « Access-Control-Request-Private-Network: true », lorsqu'une page accĂšde Ă un sous-ressource dans un rĂ©seau interne (192.168.x.x, 10.x.x.x, 172.16-31.x.x) ou Ă localhost (127.x.x.x). En cas de confirmation de l'opĂ©ration en rĂ©ponse Ă cette demande, le serveur doit renvoyer l'en-tĂȘte « Access-Control-Allow-Private-Network: true ». Dans la version Chrome 104, le rĂ©sultat de cette confirmation n'influence pas encore le traitement de la demande â en l'absence de confirmation, un avertissement s'affiche dans la console web, mais la demande de sous-ressource n'est pas bloquĂ©e. L'activation du blocage en cas d'absence de confirmation est attendue au plus tĂŽt dans la version Chrome 107. Pour activer le blocage dans des versions antĂ©rieures, vous pouvez activer le paramĂštre « chrome://flags/#private-network-access-respect-preflight-results ». de serveurs La confirmation des autorisations
a été introduite pour renforcer la protection contre les attaques liées à l'accÚs aux ressources sur le réseau local ou sur l'ordinateur de l'utilisateur (localhost) à partir de scripts chargés lors de l'ouverture du site. De telles demandes sont utilisées par les attaquants pour mener des attaques CSRF sur des routeurs, des points d'accÚs, des imprimantes, des interfaces web d'entreprise et d'autres dispositifs et services acceptant des demandes uniquement depuis le réseau local. Pour se protéger contre de telles attaques, en cas d'accÚs à tous les sous-ressources sur le réseau interne, le navigateur enverra une demande explicite d'autorisation pour le chargement de ces sous-ressources. serveur Un mécanisme de Region Capture a été ajouté, permettant de découper le contenu excessif des vidéos générées à partir de la capture d'écran. Par exemple, grùce à l'API getDisplayMedia, l'application web peut organiser la transmission de vidéos contenant le contenu de l'onglet, et Region Capture permet de couper une partie du contenu, incluant les éléments de contrÎle de vidéoconférence.
- Un mécanisme de capture de région a été ajouté, permettant de couper le contenu superflu des vidéos générées via la capture d'écran. Par exemple, à l'aide de l'API getDisplayMedia, une application web peut organiser la transmission vidéo du contenu d'un onglet, tandis que la capture de région permet de découper une partie du contenu incluant les éléments de contrÎle de vidéoconférence.
- Ajout du support d'une nouvelle syntaxe de requĂȘtes mĂ©dia spĂ©cifiĂ©e dans Media Queries Level 4, dĂ©finissant les dimensions minimales et maximales de la rĂ©gion visible (viewport). La nouvelle syntaxe permet d'utiliser des opĂ©rateurs mathĂ©matiques de comparaison ordinaires et des opĂ©rateurs logiques comme « not », « or » et « and ». Par exemple, au lieu de « @media (min-width: 400px) { ⊠} », on peut dĂ©sormais spĂ©cifier « @media (width >= 400px) { ⊠} ».
- 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.
- Ajout de la propriété CSS « focusgroup » améliorant la navigation entre les éléments à l'aide des flÚches de contrÎle du curseur du clavier.
- L'API Secure Payment Confirmation permet à l'utilisateur de désactiver le stockage des paramÚtres des cartes de crédit. Pour afficher la boßte de dialogue permettant de refuser l'enregistrement des paramÚtres des cartes de crédit, un drapeau « showOptOut: true » est prévu dans le constructeur PaymentRequest().
- Ajout de l'API Shared Element Transitions, permettant d'organiser une transition fluide entre les différentes vues de contenu dans des applications web à page unique.
- La prise en charge des rĂšgles spĂ©culatives (Speculation rules) a Ă©tĂ© stabilisĂ©e, permettant aux auteurs de sites de transmettre au navigateur des informations sur les pages les plus susceptibles d'ĂȘtre visitĂ©es par l'utilisateur. Le navigateur utilise ces informations pour le chargement et le rendu proactifs du contenu des pages.
- Le mĂ©canisme d'emballage des sous-ressources dans des paquets au format Web Bundle a Ă©tĂ© stabilisĂ©, permettant d'amĂ©liorer l'efficacitĂ© du chargement d'un grand nombre de fichiers associĂ©s (CSS, JavaScript, images, iframe). Contrairement aux paquets au format Webpack, le format Web Bundle prĂ©sente les avantages suivants : ce n'est pas le paquet lui-mĂȘme qui est mis en cache HTTP, mais ses parties composantes ; la compilation et l'exĂ©cution de JavaScript commencent sans attendre le chargement complet du paquet ; des ressources supplĂ©mentaires telles que CSS et images peuvent ĂȘtre incluses, qui dans webpack devaient ĂȘtre codĂ©es sous forme de chaĂźnes JavaScript.
- Ajout de la propriĂ©tĂ© CSS object-view-box, permettant de dĂ©finir la partie d'une image qui sera affichĂ©e dans la zone au lieu de l'Ă©lĂ©ment spĂ©cifiĂ©, ce qui peut ĂȘtre utilisĂ©, par exemple, pour ajouter une bordure ou une ombre.
- Ajout de l'API Fullscreen Capability Delegation, permettant à un objet Window de transférer à un autre objet Window le droit d'appeler requestFullscreen().
- Ajout de l'API Fullscreen Companion Window, permettant d'afficher du contenu plein Ă©cran et des fenĂȘtres pop-up sur un autre Ă©cran aprĂšs confirmation de l'utilisateur.
- La propriĂ©tĂ© CSS overflow-clip-margin a Ă©tĂ© dotĂ©e d'un attribut visual-box, qui indique Ă partir de quel point le contenu dĂ©bordant doit ĂȘtre coupĂ© (il peut prendre les valeurs content-box, padding-box et border-box).
- L'API Async Clipboard permet désormais de définir des formats spécialisés pour les données transmises via le presse-papiers, autres que du texte, des images et du texte avec balisage.
- WebGL prend désormais en charge l'indication de l'espace colorimétrique pour le framebuffer et la conversion lors de l'importation à partir d'une texture.
- Le support des plateformes OS X 10.11 et macOS 10.12 a été abandonné.
- Le support de l'API U2F (Cryptotoken), prĂ©cĂ©demment annoncĂ© comme obsolĂšte et dĂ©sactivĂ© par dĂ©faut, a Ă©tĂ© arrĂȘtĂ©. L'API Web Authentication a remplacĂ© l'API U2F.
- Des amĂ©liorations ont Ă©tĂ© apportĂ©es aux outils pour les dĂ©veloppeurs web. Le dĂ©bogueur a dĂ©sormais la possibilitĂ© de redĂ©marrer le code depuis le dĂ©but de la fonction, aprĂšs qu'un point d'arrĂȘt a Ă©tĂ© atteint dans le corps de la fonction. Le support du dĂ©veloppement d'extensions pour le panneau Recorder a Ă©tĂ© ajoutĂ©. Le panneau d'analyse des performances prend dĂ©sormais en charge la visualisation des Ă©tiquettes dĂ©finies dans l'application web via l'appel de la mĂ©thode performance.measure(). Les recommandations lors de la complĂ©tion automatique des propriĂ©tĂ©s des objets JavaScript ont Ă©tĂ© amĂ©liorĂ©es. Pour l'auto-complĂ©tion des variables CSS, un aperçu des valeurs non liĂ©es aux couleurs a Ă©tĂ© assurĂ©.

En plus des nouveautés et corrections de bugs, la nouvelle version a corrigé 27 vulnérabilités. Beaucoup de ces vulnérabilités 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 permettant de contourner tous les niveaux de sécurité du navigateur et d'exécuter du code dans le systÚme en dehors de l'environnement sandbox n'a été détecté. Dans le cadre du programme de récompenses pour la découverte de vulnérabilités de cette version, Google a accordé 22 primes d'un montant total de 84 000 dollars (une prime de 15 000 $, une prime de 10 000 $, une prime de 8 000 $, une prime de 7 000 $, quatre primes de 5 000 $, une prime de 4 000 $, trois primes de 3 000 $, quatre primes de 2 000 $ et trois primes de 1 000 $). Le montant d'une prime n'est pas encore déterminé.
Source : opennet.ru

