La sortie du navigateur web Firefox 147 a eu lieu et des mises Ă jour des anciennes branches avec un support Ă long terme ont Ă©tĂ© formĂ©es â 140.7.0 et 115.32.0. La branche Firefox 148 est maintenant en phase de bĂȘta-test, avec une sortie prĂ©vue pour le 24 fĂ©vrier.
Principales nouveautés dans Firefox 147 (1, 2, 3) :
- Ajout du support de la spécification Freedesktop.org XDG Base Directory et possibilité d'utiliser le répertoire «~/.config/mozilla» pour le stockage des profils, des extensions, des paramÚtres et des bases de données internes. Le support du stockage des données dans l'ancien répertoire «~/.mozilla» est conservé en tant qu'option, activable lors du lancement avec la variable d'environnement «MOZ_LEGACY_HOME=1».
- Ajout du support du mĂ©canisme «Compression Dictionary Transport» (RFC 9842), permettant de rĂ©duire la taille des donnĂ©es transfĂ©rĂ©es entre le client et serveur, grĂące Ă l'utilisation des algorithmes de compression Zstandard (Content-Encoding: dcz) et Brotli (Content-Encoding: dcb) en combinaison avec la compression de structures typiques utilisant des dictionnaires. Deux scĂ©narios d'utilisation du Compression Dictionary Transport sont disponibles â compression de contenu Ă l'aide de dictionnaires prĂ©alablement transmis par le serveur et utilisation du contenu prĂ©cĂ©demment transmis comme dictionnaire pour compresser sa nouvelle version (compression delta, oĂč seules les modifications par rapport Ă la version existante sont transmises).
Par exemple, lors d'une requĂȘte «GET /index.html», le serveur peut transmettre des informations sur la prĂ©sence d'un dictionnaire, en renvoyant le chemin vers celui-ci dans l'en-tĂȘte âLink: ; rel="compression-dictionary"â. Lorsque le dictionnaire «âŠ/dict» est chargĂ© par le client, le serveur fournira des informations sur son utilisation pour les fichiers HTML, en affichant l'en-tĂȘte âUse-As-Dictionary: match="/*html"â. Lors de la prochaine requĂȘte de ressource html, par exemple «GET /index2.html», le client indiquera qu'il dispose d'un dictionnaire via l'en-tĂȘte âAvailable-Dictionary: hash_dictionnaireâ. Si le serveur a ce dictionnaire sur son cĂŽtĂ© avec le hachage donnĂ©, il retournera le contenu de index2.html, compressĂ© Ă l'aide de ce dictionnaire.
Pour la compression delta de diffĂ©rentes versions de fichiers JavaSŃript en rĂ©ponse Ă une requĂȘte «GET /app.v1.js», le serveur peut afficher l'en-tĂȘte âUse-As-Dictionary: match="/app*js"â, indiquant que le contenu renvoyĂ© peut ĂȘtre utilisĂ© comme dictionnaire pour les chemins «/app*js». Lors de la requĂȘte suivante d'un fichier correspondant Ă ce masque, par exemple «GET /app.v2.js», le client transmettra le hachage du dictionnaire existant via l'en-tĂȘte «Available-Dictionary:», et le serveur ne retournera que les modifications entre les fichiers app.v1.js et app.v2.js.
- Ajout de la page about:keyboard pour configurer les combinaisons de touches et redéfinir les raccourcis existants, par exemple, pour définir des options plus familiÚres ou éviter les conflits avec d'autres programmes.

- Amélioration de la lecture vidéo avec l'utilisation de l'accélération matérielle de décodage sur les GPU AMD. Sur les systÚmes dotés d'un GPU AMD, la vidéo décodée matériellement est désormais lue sans copie de données supplémentaire (mode zero-copy), comme cela avait été précédemment réalisé pour les systÚmes avec GPU Intel et NVIDIA.
- Pour la version 5, la mise en Ćuvre du protocole Safe Browsing a Ă©tĂ© mise Ă jour, utilisĂ©e pour vĂ©rifier les URL contre les listes de ressources dangereuses (sites de phishing, pages contenant des logiciels malveillants, etc.) fournies par Google. La nouvelle version du protocole permet de tĂ©lĂ©charger des listes de blocage pour une utilisation sur le systĂšme local (BD avec des prĂ©fixes de hachages SHA256 des URL problĂ©matiques), qui sont maintenant appliquĂ©es dans Firefox.
- Ajout d'une option pour reprendre automatiquement la lecture vidéo en mode « image dans l'image » lors du changement d'onglet.
- En mode de protection renforcĂ©e contre le suivi des mouvements (ETP, Enhanced Tracking Protection => Strict), l'application de la spĂ©cification LNA (Local Network Access) est activĂ©e par dĂ©faut pour limiter les accĂšs au systĂšme local (loopback, 127.0.0.0/8) ou au rĂ©seau interne (192.168.0.0/16, 10.0.0.0/8, etc.) lors des interactions avec des sites publics. L'accĂšs aux ressources internes est utilisĂ© par les attaquants pour rĂ©aliser des attaques CSRF sur les routeurs, les points d'accĂšs, les imprimantes, les interfaces web d'entreprise et d'autres dispositifs et services acceptant des requĂȘtes uniquement depuis le rĂ©seau local. De plus, le scan des ressources internes peut ĂȘtre utilisĂ© pour une identification indirecte ou pour recueillir des informations sur le rĂ©seau local.
- Sur les systÚmes Linux avec GNOME et le serveur composite Mutter, un problÚme d'affichage flou du contenu lors de l'utilisation d'un niveau de mise à l'échelle fractionnel a été résolu.
- Sur les ordinateurs Apple dotés de puces Apple Silicon et du systÚme d'exploitation macOS, la prise en charge de l'API WebGPU a été activée.
- Les prioritĂ©s de langue dans l'en-tĂȘte HTTP Accept-Language (paramĂštres q) sont synchronisĂ©es avec les valeurs dĂ©finies par d'autres navigateurs, ce qui a rĂ©solu certains problĂšmes de portabilitĂ©. Par exemple, pour la deuxiĂšme langue, la prioritĂ© est maintenant dĂ©finie Ă q=0.9 au lieu de q=0.5, et pour chaque langue suivante, la prioritĂ© diminue de 0.1.
- La bibliothÚque ICU a été mise à jour vers la version 78 avec prise en charge de Unicode 17 et mise à jour des données de localisation.
- L'utilisation de modules JavaScript ESM (ECMAScript Module) est maintenant autorisée dans les Service Workers, avec des importations et exportations via les expressions import et export.
- Ajout de la prise en charge de la spécification CSS Module Scripts, permettant d'utiliser le systÚme de modules JavaScript pour importer des ressources CSS. Par exemple : import styles from "./styles.css" with { type: "css" };
- Dans le pseudo-élément «::marker», qui permet de personnaliser les paramÚtres des numéros et des puces pour les listes dans les blocs
- et
- , l'utilisation des propriétés CSS «counter-*» et «quotes» est autorisée.
- Dans l'API CompressionStream et DecompressionStream, le support du format de compression Brotli a été ajouté.
- Dans l'API View Transitions, utilisée pour créer des effets d'animation lors du changement entre différents états du DOM, une propriété «type» a été ajoutée, contenant un tableau avec les types de transitions. Un sélecteur CSS correspondant «:active-view-transition-type» et une propriété document.activeViewTransition, retournant une instance de l'objet ViewTransition actif pour le document, ont également été ajoutés.
- Un ensemble de propriĂ©tĂ©s CSS pour gĂ©rer l'affichage des Ă©lĂ©ments liĂ©s Ă la position d'autres Ă©lĂ©ments (CSS Anchor Positioning) a Ă©tĂ© inclus, sans utiliser JavaScript, par exemple pour attacher des Ă©lĂ©ments de fenĂȘtres contextuelles (popover) apparaissant de maniĂšre similaire aux infobulles.
- La spĂ©cification «Storage Access Headers», dĂ©finissant l'en-tĂȘte de requĂȘte «Sec-Fetch-Storage-Access» et l'en-tĂȘte de rĂ©ponse «Activate-Storage-Access» pour accĂ©der aux cookies tiers sans appeler la mĂ©thode document.requestStorageAccess(). Le serveur peut demander l'accĂšs aux cookies via l'en-tĂȘte «Activate-Storage-Access» et cela sera envoyĂ© par le client si l'utilisateur a prĂ©cĂ©demment confirmĂ© la fourniture d'accĂšs au stockage des cookies via l'API Storage Access.
- La propriété CSS «root-font-relative» a été enrichie du support des unités de mesure relatives rcap, rch, rex et ric.
- L'API Navigation a Ă©tĂ© implĂ©mentĂ©, permettant 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 de l'application. L'API offre une alternative aux propriĂ©tĂ©s window.history et window.location, optimisĂ©e pour les applications web Ă page unique.
- Dans les outils pour développeurs web, la section des rÚgles CSS prend désormais en charge l'édition et l'ajout de sélecteurs de pseudo-éléments. Une option a été ajoutée à l'interface de visualisation des données au format JSON pour importer les ressources dans le systÚme de profilage (Firefox Profiler) afin de déterminer les informations sur leur taille. Les panneaux d'inspection des éléments HTML et des animations affichent désormais les pseudo-éléments View Transitions. Une fonction d'affichage des rÚgles @position-try a été intégrée pour gérer l'affichage des éléments liés à la position d'autres éléments (CSS Anchor Positioning).
- Dans la version de Firefox pour Android, protection contre les attaques par des canaux tiers, comme Spectre, qui est utilisé pour contourner l'isolation entre les sites. Auparavant, une telle protection n'était disponible que dans les versions de bureau.
En plus des nouveautés et des corrections de bogues dans Firefox 147, 23 vulnérabilités ont été corrigées. Dix vulnérabilités sont dues à des problÚmes de gestion de la mémoire, tels que les débordements de tampon et l'accÚs à des zones de mémoire déjà libérées. Ces problÚmes peuvent potentiellement permettre l'exécution de code malveillant lors de l'ouverture de pages spécialement conçues. Trois vulnérabilités permettent de contourner l'isolation sandbox en raison d'une vérification incorrecte des limites et d'un débordement d'entier dans le composant graphique.
Source : opennet.ru

