Firefox 148 est disponible, ainsi que les mises à jour des versions LTS précédentes : 140.8.0 et 115.33.0 (la dernière de la série 115.x). Firefox 149, dont la sortie est prévue le 24 mars, entrera en phase de test bêta dans les prochaines heures.
Principales nouvelles fonctionnalités de Firefox 148 (1, 2, 3) :
- La section « Contrôles IA » promise précédemment, permettant de gérer l'utilisation de l'IA, a été ajoutée aux paramètres. Les utilisateurs peuvent désactiver toutes les fonctionnalités d'IA ou activer uniquement celles dont ils ont besoin. La désactivation sélective inclut des fonctionnalités telles que la traduction automatique, la reconnaissance de texte dans les images et les PDF numérisés, les recommandations et les étiquettes lors du regroupement d'onglets, la génération d'un contenu court lors de la prévisualisation des liens et l'interface d'interaction avec les chatbots. Chaque fonctionnalité peut être activée, désactivée ou bloquée. Le blocage supprime les modèles d'IA installés localement et masque les éléments d'interface.

- Une option distincte a été ajoutée aux paramètres pour permettre l'application à distance non planifiée des correctifs et modifications entre les versions. Auparavant, cette fonctionnalité était liée à l'activation de la télémétrie et à la participation aux tests de fonctionnalités expérimentales (Vie privée et sécurité > Collecte de données Firefox > Installer et exécuter des études), mais à partir de Firefox 148, elle peut être activée indépendamment.

- Les images d'arrière-plan sélectionnées pour la page affichée lors de l'ouverture d'un nouvel onglet sont désormais appliquées à la fois aux nouveaux onglets par défaut et aux nouveaux onglets conteneurs.
- La fonctionnalité de sauvegarde de Firefox a été ajoutée pour les utilisateurs de Windows 10 et 11. Elle permet de créer des copies de sauvegarde des données du navigateur, telles que les marque-pages, les paramètres et les mots de passe. La sauvegarde n'inclut pas les données que l'utilisateur a choisi d'effacer à la fermeture du navigateur. La sauvegarde créée peut être utilisée pour restaurer l'état du navigateur après une réinstallation du système d'exploitation ou sur un autre ordinateur.
- Le document initial « about:blank » est désormais compatible avec le Web, étant généré de manière synchrone et n'étant plus remplacé de manière asynchrone par un second document vide généré par l'analyseur syntaxique lorsque la navigation sur la page commence (ce remplacement pouvait provoquer une condition de concurrence, entraînant parfois la perte des modifications écrites via JavaScript immédiatement après l'appel à window.open()).
- Le mécanisme Service Worker a été mis à jour pour prendre en charge l'API WebGPU, permettant ainsi d'exécuter des opérations WebGPU en arrière-plan, par exemple dans des modules complémentaires ou lors de l'exécution de tâches communes sur différents onglets d'un même site.
- JavaScript dispose désormais des méthodes `Iterator.zip()` et `Iterator.zipKeyed()` pour combiner plusieurs tableaux. Ces méthodes prennent plusieurs itérateurs et forment un nouvel itérateur dont chaque élément est un tableau ou un objet contenant les valeurs des itérateurs à la même position. `const str1 = "abc"; const str2 = "1234"; const it = Iterator.zip([Iterator.from(str1), Iterator.from(str2)]); for (const [char1, char2] of it) { console.log(`${char1} - ${char2}`); } // Sorties : // a - 1 // b - 2 // c - 3 const table = { name: [«Caroline», «Danielle», «Evelyn»], age: [30, 25, 35], city: [«New York», «London», «Hong Kong»], };` for (const { name, age, city } of Iterator.zipKeyed(table)) { console.log(`${name}, âgée de ${age}, vit à ${city}.`); } // Affiche : // Caroline, 30 ans, vit à New York. // Danielle, 25 ans, vit à Londres. // Evelyn, 35 ans, vit à Hong Kong.
- L'API Trusted Types a été implémentée afin de protéger contre les manipulations du DOM susceptibles d'entraîner des attaques XSS (Cross-Site Scripting) via le DOM. Par exemple, un traitement incorrect des données fournies par l'utilisateur dans les blocs `eval()` ou les insertions `.innerHTML` peut permettre l'exécution de code JavaScript dans le contexte d'une page spécifique. Trusted Types exige l'utilisation d'objets TrustedHTML spéciaux au lieu de simples chaînes de caractères dans les appels dangereux tels que `element.innerHTML`, `document.write()` et `setTimeout()`. Ces objets TrustedHTML sont créés par des fonctions écrites par les développeurs, qui effectuent la validation et la désinfection des données.
- L'API Sanitizer a été ajoutée, offrant des méthodes pour manipuler le HTML et supprimer les éléments HTML du contenu susceptibles d'affecter l'affichage et l'exécution. Pour insérer du contenu HTML en toute sécurité, la méthode `element.setHTML()` est similaire à `element.innerHTML` mais protège contre les attaques XSS (Cross-Site Scripting). Pour analyser le HTML en toute sécurité, la méthode `document.parseHTML()` est implémentée. Cette API peut s'avérer utile pour assainir les données entrantes et en supprimer les balises HTML pouvant servir à des attaques XSS. `const unsanitizedString = "abc"` alert(1) def»; const sanitizer1 = new Sanitizer({ elements: [«div», «p», «button», «script»], }); const target = document.getElementById(«target»); target.setHTML(unsanitizedString, { sanitizer: sanitizer1 });
- Ajout de la prise en charge de la propriété « location.ancestorOrigins », qui contient la liste des origines de tous les éléments de document parents associés à l'objet Location spécifié. Cette propriété peut être utilisée, par exemple, pour déterminer si un document est chargé via une iframe sur un autre site.
- L'API de navigation a été mise à jour avec un objet NavigationPrecommitController doté d'une méthode addHandler() qui permet d'associer un gestionnaire déclenché lors de la navigation post-validation, lorsque la nouvelle URL est déjà affichée dans la barre d'adresse.
- La propriété CSS `position-try-order` a été ajoutée. Elle spécifie la priorité des positions de repli lorsqu'un élément ancré ne tient pas à l'écran. Cette propriété fait partie du jeu de propriétés CSS `Anchor Positioning`, qui permet de contrôler l'affichage des éléments ancrés à la position d'autres éléments sans utiliser JavaScript, par exemple pour ajouter des infobulles à des éléments.
- La fonction shape() a été ajoutée à CSS, vous permettant de former des formes en utilisant les propriétés CSS clip-path et offset-path. La fonction shape() prend en charge les commandes de formation de forme équivalentes à la fonction path(), mais vous permet d'utiliser la syntaxe CSS standard pour elles.
- Firefox pour Android propose une barre d'outils repensée, une personnalisation améliorée de son contenu et une option permettant de copier rapidement le texte visible d'un lien sans ouvrir la page.
Outre de nouvelles fonctionnalités et des corrections de bogues, Firefox 148 corrige 60 vulnérabilités (six fois plus que la version précédente). Quarante-huit de ces vulnérabilités sont dues à des problèmes de gestion de la mémoire, tels que des dépassements de tampon et l'accès à de la mémoire libérée. Ces problèmes pourraient potentiellement permettre l'exécution de code malveillant lors de l'ouverture de pages spécialement conçues. Cinq vulnérabilités permettent de contourner l'isolation du bac à sable en raison de vérifications de limites incorrectes et de dépassements d'entiers dans le composant graphique.
Source: opennet.ru


