Mozilla a publié Firefox 70.0 pour ordinateur, ainsi que Firefox pour Android 68.2 et Firefox ESR 68.2.0.Les utilisateurs prévenus lorsque leurs identifiants et mots de passe enregistrés sont compromis
À partir de cette version, Firefox (desktop) peut avertir l’utilisateur lorsque l’un de ses identifiants de connexion est trouvé dans la base de données qui collecte des identifiants volés provenant de comptes piratés. Cette vérification se fera par le biais du site Web partenaire « Have I Been Pwned? » spécialisé dans les cas de violations de données. Dans le cadre de cette initiative, Firefox va analyser les identifiants de connexion et les mots de passe enregistrés et verra s’ils ont fait l’objet d’une violation de données répertoriée sur HIBP. S’il en trouve une, le navigateur alertera l’utilisateur et l’invitera à changer son mot de passe.
Il faut garder à l’esprit que cette nouvelle fonctionnalité permettra uniquement de détecter des mots de passe compromis associés à des violations de données antérieures répertoriées. Lorsque Firefox détectera qu’un compte enregistré a fait l’objet d’une violation, il ajoutera une icône d’alerte à côté du profil du compte dans Firefox Lockwise puis affichera une notification « les mots de passe ont été divulgués ou volés ».
Un nouvel interpréteur JavaScript plus rapide
Mozilla a développé et ajouté à un nouvel interpréteur de bytecode JavaScript à son moteur de rendu JavaScript intégré dans cette version. Mozilla annonce donc une gestion plus performante du code JavaScript avec l’aide de son nouvel interpréteur de code ajouté à son moteur JavaScript.
Pour atteindre cet objectif, Mozilla explique que dans les moteurs JavaScript modernes, chaque fonction est initialement exécutée dans un interpréteur de code. Les fonctions qui sont beaucoup appelées sont compilées en code machine natif. Cela s’appelle la compilation JIT ou compilation à la volée. Pour ce qui concerne Firefox, il intègre également un interpréteur de code JavaScript écrit en C++ et plusieurs niveaux de compilation JIT. Dans un premier temps, nous avons d’abord un compilateur JIT de base qui compile chaque instruction bytecode directement en un petit morceau de code machine en utilisant la mise en cache inline à la fois pour des besoins de performance et de collecte des informations de type pour le compilateur JIT nommé IonMonkey ou Ion. À son tour, le compilateur IonMonkey utilise des optimisations avancées pour générer un code rapide pour les options critiques. Il faut préciser que lorsqu’une fonction déjà en cours de compilation est appelée avec un nouveau type d’arguments, le code de la fonction peut être « désoptimisé » et abandonné. Dans pareil cas, l’exécution se poursuit dans le code de base jusqu’à la prochaine compilation Ion.
Bien que ce processus d’interprétation du code JavaScript a fonctionné assez bien jusque-là, l’équipe de Firefox explique qu’elle a rencontré quelques problèmes avec la première partie du pipeline composée de l’interpréteur C++ et du compilateur JIT de base. En effet, certaines applications web modernes comme Google Docs ou encore Gmail exécutent tellement de code JavaScript que le compilateur de base et même le compilateur JIT pourraient passer beaucoup de temps en cherchant à compiler des milliers de fonctions. Par ailleurs, l’interpréteur C ++ s’est avéré très lent et ne collecte pas d’informations de type, ce qui retarde la compilation de base. Une solution aurait été de le déplacer hors du thread, mais cela aurait constitué un risque de performance. Pour résoudre ces problèmes, Firefox a ajouté au pipeline une nouvelle étape appelée interpréteur de base.
L’interpréteur de base se situe entre l’interpréteur C++ et le compilateur JIT de base et contient des éléments des deux niveaux. Il exécute toutes les instructions bytecode avec une boucle d’interpréteur fixe (comme l’interpréteur C++), et utilise les techniques de mise en cache inline pour améliorer les performances et collecter des informations de type (comme le JIT de base le fait). Générer un interprète n’est pas une nouvelle idée. Mais l’équipe de Firefox souligne ici qu’elle a trouvé un nouveau moyen de le faire en réutilisant...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.