La 46e version de Firefox est sortie le 26 avril 2016 avec, parmi les nouveautés :

version bureau : le passage à la boite à outils graphiques GTK+ 3 sous GNU/Linux (enfin !), des améliorations de sécurité dans le traitement du JavaScript et des gains de performance et de stabilité avec WebRTC ;

version pour Android : Firefox gagne la possibilité, en étant hors ligne, d’afficher des pages précédemment visitées ;

côté coulisses : le moteur de rendu maison (Gecko) accepte désormais de traiter des propriétés CSS préfixées pour les moteurs concurrents WebKit et Blink !

Sans plus attendre, voici le détail des nouveautés pour les versions de bureau et mobile, ainsi que pour les développeurs. Suit une revue des choses à attendre par la suite pour votre navigateur préféré.

Sommaire

Bureau (mais ça marche aussi à la maison)

Firefox gagne une meilleure sécurité dans le traitement du JavaScript, ceci est expliqué en détail dans ce billet de blogue, et profite de gains de performance et de stabilité avec WebRTC, qui sont détaillés dans les notes de version spécifiques.

Autre nouveauté marquante : le portage tant attendu de la version GNU/Linux sur GTK+ 3 !

Pour savoir si la version de Firefox compilée par votre distribution roule bien la version 3 de GTK+, tapez about:buildconfig dans la barre d’adresse et cherchez l’argument --enable-default-toolkit=cairo-gtk3 .

Le passage à GTK+ 3 rend possible tout un tas de changements futurs, comme théoriquement de changer de bibliothèque d’affichage sans pénalité de performance (historiquement, la version GNU/Linux utilise Cairo, mais Skia — déjà utilisé par Firefox sur d’autres plates‐formes — est une alternative) [rapport de bogue correspondant] et nous rapprochera d’une version de Firefox pour Wayland [rapport de bogue correspondant].

N. B. : Le cousin Thunderbird, quant à lui, sauterait le pas à l’occasion de la prochaine version (soit a priori la 52, qui succédera à l’actuelle version 45 au rythme des ESR).

Mobile

Firefox gagne donc la possibilité, en étant hors ligne, d’afficher des pages précédemment visitées, comme illustré dans ce billet de blogue.

En tapant dans la barre d’adresse, Firefox offre une auto‐complétion des noms de domaines précédemment visités. Désormais, lorsqu’il n’y a pas d’historique, Firefox recherche dans une liste de domaines par défaut.

Cette version sait également tirer parti du nouveau système de permissions d’Android Marshmallow (6.0).

Firefox Mobile ne permettra plus d’utiliser Firefox Sync 1.1 pour synchroniser votre navigateur mobile avec vos autres périphériques. Il est donc nécessaire de passer à Firefox Account pour pouvoir encore bénéficier de la synchronisation. Si vous ne souhaitez pas utiliser le service proposé par Mozilla, vous pouvez installer votre propre serveur Firefox Account.

Hormis cela, vous pouvez vous référer à la liste des nouveautés dans les notes de version.

Commun

Comme nous vous l’annoncions il y a deux dépêches de cela, désormais Firefox accepte les préfixes webkit- (bogue no 1213126). On ne dira pas merci aux webmestres qui ne se préoccupent que des iPhones navigateurs Chrome et Safari, sans égard pour l’interopérabilité (Microsoft avec Edge a dû faire les mêmes concessions). Malheureusement l’histoire bégaie et nous ressert le même plat qu’au temps d’Internet Explorer 6. :/

Toutefois la multiplication de préfixes propriétaires semble bel et bien terminée car deux des principaux navigateurs, Chromium et Firefox, n’utiliseront plus cette technique pour introduire de nouvelles directives CSS.

Pour les développeurs

Firefox 46 apporte de nouveaux outils pour analyser l’utilisation mémoire de vos développements.

Lorsque vous aurez pris une capture d’utilisation mémoire de votre application Web, vous pourrez dorénavant l’analyser avec la vue Dominators. Elle vous permettra de comprendre la taille mémoire utilisée par chacun des objets instanciés. L’affichage permettra de voir la taille de l’objet lui‐même et la taille des autres objets utilisés par référence.

Cette dernière information est très intéressante, car elle permet de comprendre pourquoi le ramasse‐miettes décide de ne pas faire la suppression automatique d’un objet de la mémoire. Ceci permet d’alléger les applications puisque le développeur pourra s’assurer que ses objets soient correctement libérés après leur utilisation ou bien de savoir quelle référence empêche cette libération.

Une nouvelle vues dans la partie Performance des outils de développement fait également son apparition : Allocations. Elle permet d’analyser le nombre d’allocations mémoire demandées par chaque fonction du site Web et la quantité de mémoire utilisée pendant la période d’analyse des performances.

De plus, la vue Chronologie affiche dorénavant le suivi des actions du ramasse‐miettes afin d’analyser les évènements qui ont provoqué le réveil des opérations de nettoyage de la mémoire et permet d’accéder directement à la nouvelle vue Allocations pour le temps sélectionné.

Vous pouvez vous référer aux notes de version pour la liste des autres nouveautés de cette version.

Installer Firefox

La version bureau de Firefox est disponible en 32 ou 64 bits pour systèmes GNU/Linux, Mac OS X 10.6 ou supérieur, Windows XP SP2 ou supérieur (par comparaison, Chrome fonctionne sur un nombre plus restreint de systèmes, laissant de côté Windows XP et Vista, Mac OS X 10.6 Snow Leopard, 10.7 Lion et 10.8 Mountain Lion et les distributions GNU/Linux 32 bits).

La version mobile de Firefox délaisse Android Honeycomb (version 3) à compter de cette version, de sorte qu’Ice Cream Sandwich (4.0) devient le nouveau point d’entrée.

Prochaines versions

Modification de la politique de programmation des publications

Il a été décidé de donner un peu plus de flexibilité au rythme de sortie des versions de Firefox : il y a quatre ans, Mozilla avait décidé de changer son système de publication pour sortir des nouvelles éditions toutes les six semaines. Ainsi, les utilisateurs n’avaient plus besoin d’attendre parfois jusqu’à une année avant de recevoir de nouvelles fonctionnalités et des mises à jour majeures (le pire ayant été le développement de la version 4, sortie presque deux ans après la version 3.5, et qui avait rendu nécessaire la publication d’une version 3.6 intermédiaire).

Après une prise de recul face à ce système, il a été décidé de l’adapter pour passer d’une édition toutes les six semaines fixes à une fourchette de publication de six à huit semaines, afin de pouvoir s’adapter aux besoins des utilisateurs et marchés émergeants, de pouvoir aussi s’assurer d’avoir six semaines complètes de jours ouvrables pour chaque version et de s’adapter aux périodes de vacances de la communauté Mozilla. La planification pour 2016 est disponible sur l’article annonçant ces changements.

Firefox 47

Il ne sera plus possible de désactiver l’obligation de recourir à des extensions signées.

Projet Electrolysis, APZ

Le projet Electrolysis, alias e10s, consiste à décomposer le fonctionnement de Firefox en différents processus pour de meilleures performances et une sécurité accrue.

Mozilla explique que « dans les versions actuelles de Firefox sur ordinateur de bureau, le navigateur tout entier fonctionne dans un seul processus du système d’exploitation. En particulier, le JavaScript qui exécute l’interface utilisateur du navigateur fonctionne dans le même processus que le code dans les pages Web. » Aussi, « les futures versions de Firefox vont exécuter l’interface utilisateur du navigateur dans un processus distinct du contenu Web. Dans la première itération de cette architecture, tous les onglets du navigateur vont s’exécuter dans le même processus, et l’interface utilisateur du navigateur, quant à elle, s’exécutera dans un processus différent. Dans les versions futures, nous nous attendons à avoir plus d’un processus de contenu. »

C’est le plus gros changement architectural jamais entrepris sur Firefox (vous en saurez tous les détails en lisant — en anglais — ce billet de blogue et en suivant les deux liens donnés à la fin dudit billet).

La feuille de route a été actualisée le 8 avril. Pour l’instant, l’expérimentation continue sur le canal bêta afin de corriger les instabilités résultant de ce changement très invasif. A également été décidé à cette occasion que la fonctionnalité asynchronous panning and zooming (APZ) pouvait finalement être lancée sans attendre l’activation d’e10s, le défilement étant amélioré par APZ dans la plupart des cas.

Les extensions n’ayant pas été initialement conçues pour le multi‐processus, les utilisateurs (vous, nous !) sont invités à rapporter les bogues rencontrés lors de l’activation d’e10s en se rendant sur le site dédié : https://www.arewee10syet.com/.

Parallèlement Firefox va proposer des shims permettant de ne pas casser les extensions le temps qu’elles migrent.

WebExtensions

L’été dernier Mozilla annonçait un nouveau système d’extensions, bâti autour de la nouvelle API WebExtensions, compatible avec Electrolysis et Servo, qui offrirait une sécurité accrue (mais aussi moins de possibilités), et faciliterait le développement des extensions (une même extension pourrait fonctionner dans Firefox, Chrome et Opera, sans parler des nouveaux outils mis en place), aussi bien que leur validation. Ce système remplacerait à terme le système existant basé sur XPCOM et XUL, soit six à douze mois après l’activation d’Electrolysis dans les versions finales de Firefox.

WebExtensions, déjà au cœur du système d’extensions de Firefox OS 2.5, a commencé à intégrer Firefox à l’occasion de la version 45, avec la version 48 (Desktop et Mobile) en ligne de mire. La présente version 46 s’inscrit dans cette feuille de route.

Au final le passage à Electrolysis et WebExtensions permettra de résoudre un certain nombre de vulnérabilités actuelles (lire à ce propos ceci et cela).

Autour de Firefox

Outils pour développeurs : WebSocket Monitor, Firebug

Il est désormais possible de déboguer les WebSockets, à l’aide de l’extension WebSocket Monitor (sous licence BSD, par l’équipe de développement de Firebug).

En parlant de Firebug justement, la version 3 à venir s’appuiera directement sur les Developers Tools de Firefox, qu’il étendra.

Toutes les infos sur blog.epoc.fr.

Servo/Rust

La feuille de route pour 2016 de Servo, un moteur de rendu HTML écrit en Rust, se précise.

Parallèlement, la question de savoir quand du code Rust/Servo pourra se déployer effectivement dans Gecko (nom de code du procédé : Oxidation) a récemment fait débat. En cause, un bogue dans Rust relatif à l’allocation de mémoire, bloquant pour certains et pas pour d’autres. Les seconds ont eu gain de cause au final, de sorte que la fête va pouvoir commencer (à partir de Firefox 48).

Une chose amusante à signaler : une poignée d’utilisateurs (environ 0,5 %) avec un processeur ne prenant pas en charge le jeu d’instructions SSE2 (introduit il y a 15 ans) était susceptible de bloquer le projet Oxidation. Ces utilisateurs étant quasiment tous sous Windows XP (nom de code : Windows NT 5.1), il a fallu prévoir une règle spécifique consistant à désactiver la génération de code SSE2 à la compilation pour les binaires Win32… (ouf, l’Atom de mon fidèle netbook acheté il y a 7 ans prend en charge ce jeu d’instructions, je viens de le vérifier !).

Tiens, Dropbox est passé à Rust.

B2G (ex Firefox OS)

La communauté est à pied d’œuvre pour développer, avec l’aide de Mozilla, le successeur de Firefox OS pour smartphones, et le projet avance rapidement, avec le remplacement en cours des API propres que Mozilla avait dû mettre en place au lancement du projet par des API ouvertes et standardisées que Mozilla a aidé à faire émerger depuis. Cette refonte servira de base autant au projet purement communautaire à destination des smartphones (B2G) qu’aux versions pour TV et IoT pilotées par Mozilla.

Schisme Firefox/Thunderbird

C’est dans l’air depuis quatre ans et cela se précise dernièrement : Mozilla s’apprête à laisser la main pour Thunderbird. Nouvelle étape : un rapport commandé par Mozilla passe en revue les différentes structures capables d’accueillir le développement du célèbre courrielleur.

Conclusion

Electrolysis, WebExtensions, Oxidation… autant de grands chantiers ouverts qui conduiront dans un futur proche à un Firefox largement renouvelé !

Appel à contribution

Contributeurs de tous horizons, les dépêches commentant les sorties des nouvelles versions de votre butineur préféré ont besoin de vous !

Aller plus loin