Alors, le Firefox nouvelle génération, il rocks ou il rocks ?

closeCet article a été publié il y a 6 ans 4 mois 24 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Comme j’avais d’autres priorités en tête au moment de la sortie du Messie, c’est à dire Firefox 57, j’ai laissé les autres acteurs du Web (blogueurs, sites d’information, etc) vous donner leur vision du navigateur. J’avais aussi envie d’en parler mais reste-t-il quelque chose à en dire, est-ce que ma vision du navigateur en tant que quasi-fanboy est pertinente malgré tout ? J’ai posé la question sur Twitter, en testant pour la première fois les sondages, et vous avez été sans pitié. Essayons donc de voir si je peux faire un exposé cohérent et intéressant du renouveau du panda roux.

Une numéro de version dans la continuité, mais un renouveau presque total

Il y a un an, Mozilla a amorcé une série de travaux devant aboutir au navigateur qui est sorti depuis maintenant presque un mois. Ces travaux sont regroupés sous le terme Quantum. Tout le monde n’en a que pour les extensions, et l’absence d’alternatives pour certaines d’entre elles, mais le changement est bien plus profond que ça, et n’est pas fait juste pour déranger les habitudes.

Il faut en effet se souvenir que Firefox, malgré une amélioration continue depuis sa sortie il y a 13 ans, traînait quelques boulets qu’il était compliqué de détacher de ses chevilles pour qu’il puisse courir de nouveau. En plus de revoir les fondations de fond en comble (couper les jambes qui sont attachées aux boulets et en greffer de nouvelles), ils ont décidé pour l’occasion de tenter un changement de langage de programmation, et Mozilla n’a pas fait les choses à moitié en créant carrément le langage Rust, dont l’objectif est d’apporter, au niveau du langage lui-même, une meilleure sécurité notamment sur la gestion de la mémoire, tout en garantissant un haut niveau de performances,  deux points cruciaux pour un navigateur web de nos jours.

Et tous les composants y sont passés ou vont y passer, du moteur de rendu à l’interface, en passant par l’interpréteur CSS, le moteur JavaScript, extensions… finalement ce qui fait que Firefox est encore Firefox c’est que votre dossier de profil reste le même, avec ses bases sqlite pour les différents paramètres et historiques. Certains des éléments réécrits ont été intégrés au fur et à mesure, c’est ainsi que ça fait plusieurs mois que la lecture des vidéos HTML5 est prise en charge par un composant écrit en Rust. Et vu la différence de performance dès Firefox 56 sur Android (confirmé par un de mes collègues lui aussi utilisateur du navigateur mobile), je soupçonne Mozilla d’avoir intégré d’autres couches dans cette version intermédiaire avant le grand saut.

C’était nécessaire : la sécurité du navigateur commençait à être limite, quand les autres acteurs proposent une mécanique de bac à sable isolant le navigateur du reste du système pour éviter tout intrusion grave. C’est maintenant possible, en lien notamment avec le moteur de rendu, qui est maintenant en plus pleinement capable d’exploiter tous les cœurs de votre CPU grâce à une parallélisation plus grande, donc des performances en hausse, un autre élément sur lequel Firefox était en retard. On note également une plus grande séparation entre processus qui gèrent l’interface et processus qui gèrent les sites contenus dans les onglets, améliorant de fait la stabilité globale du logiciel. Bon ceci dit, je touche du bois dans l’ensemble, ça doit faire 8 ans que je n’ai pas rencontré une grande instabilité sur Firefox.

Nécessairement des pots cassés

Je ne vais pas pleurer sur la disparition des vieux plugins NPAPI, dont la technologie d’interface avec le navigateur remonte au début des années 2000 (correction, c’est encore plus vieux), là où le multicœurs était réservé aux machines extrêmement chères que sont les stations de travail propriétaires ainsi que les supercalculateurs. Seul Flash reste encore supporté car malheureusement, si le grand public pourrait s’en passer, il existe encore trop d’applications pourtant « professionnelles » qui sont codées avec ce framework. Lui aussi j’aimerai le voir crever plus tôt que 2020. Déjà maintenant il est activé à la demande et pas par défaut.

Parmi les reproches que j’ai pu lire le plus, c’est au niveau des extensions qu’on croirait à une vraie catastrophe à entendre les gens. On pouvait s’y attendre, mais tout de même… Si Mozilla avait fait un premier pas vers une rénovation de ses extensions avec JetPack, celui-ci posait beaucoup de problèmes également, aussi bien sur la sécurité que sur la parallélisation. Décision fut prise il y a un an maintenant de passer au format WebExtensions, déjà exploité sur Google Chrome et dérivés. On pourra arguer que Firefox copie encore Chrome, mais le fait est que ce nouveau format basé sur les technologies web permet de réutiliser les composants de rendu du navigateur, et donc de profiter des performances de ceux-ci.

La conséquence cependant, et j’en ai fait personnellement les frais, c’est que certaines capacités que permettaient Jetpack ne sont plus possibles dans WebExtensions, et pour l’instant il n’y a rien à faire pour corriger cet était de fait, bien que les développeurs restent ouverts à certaines adaptations de l’API, ce qui permet à terme de faire plus de choses que chez Chrome. Ajoutez à ça les développeurs d’extensions qui ne ne veulent pas forcément refaire le travail de zéro, et forcément on a l’impression que beaucoup de monde reste sur le carreau. Cependant, Mozilla a quand même eu une ou deux bonnes idées : il y a une section qui regroupe les modules que vous ne pouvez plus utiliser, et propose un bouton pour rechercher des extensions similaires qui pourraient remplir le rôle, avec parfois à la clé de très bonnes surprises.

WebExtensions a même coexisté avec Jetpack pendant plusieurs mois, et les extensions qui deviendraient incompatibles étaient déjà marquées comme obsolètes. Pour ma part j’avais fait le boulot en amont pour m’assurer que je serai tranquille, dans l’ensemble. Malgré tout, parmi les utilisateurs qui n’ont pas eu le réflexe de vérifier ce point, il était inévitable que ça fasse quelques dégâts. Courage Cyrille. Si vous êtes effectivement coincé avec certaines extensions, vous pouvez installer à la place Firefox ESR, qui est encore basé sur Firefox 52, donc pleinement compatible, mais c’est reculer pour mieux sauter, je vous recommande de faire vos recherches et adaptations au plus vite, que ce soit pour vous ou d’autres personnes.

Les thèmes ont également pris un pion dans l’affaire. Pour ma part, j’avais déjà basculé sur le minimal dark que Firefox fournit et continue de fournir (j’aime bien les thèmes sombres), mais certaines personnes ont pu installer des choses plus exotiques (j’ai vu cet été qu’il existait encore un thème « Modern » qui était l’interface de Netscape fin des années 90,et j’utilisais le thème ARC qui n’a pas été maintenu super longtemps). Il n’y a donc plus que les personas qui sont supportées correctement actuellement, en raison d’un autre grand changement de Firefox : Photon.

Une interface plus lumineuse ?

Admirez le jeu de mots pourri, surtout pour un mec qui utilise un thème sombre. Photon est le nom de code de l’interface de Firefox, et elle a elle aussi été complètement revue. Sous le capot, exit XUL qui n’a pas super bien vieilli et qui commençait à ralentir le reste de Firefox et à limiter les possibilités d’évolution. Il y a des points qui me plaisent bien, comme un retour à des onglets qui ne ressemblent pas à ceux de Chrome (les détracteurs diront que ce coup-ci c’est Microsoft Edge qui a été copié), la barre d’adresses peut être encore mieux organisée. La nouvelle gestion du panneau latéral ne me fait personnellement ni chaud ni froid, au bout du deuxième clic j’avais compris, et de toute façon j’utilise tellement les raccourcis claviers que j’ai pas trop senti la différence.

Là où je suis un peu déçu, c’est le menu principal. J’aimais bien les « gros » boutons, le menu était entièrement personnalisable et je n’avais laissé que le strict minimum, et j’avais tendance à faire de même quand je paramétrais Firefox pour quelqu’un. Je ne sais pas ce qui a motivé le passage à un menu plus « chromesque » qui n’a pas beaucoup de charme, et qui est beaucoup plus lourd selon moi.

À gauche FF57, à droite FF56

Fort heureusement, les outils de développement sont toujours là, et fonctionnent toujours aussi bien. Les masochistes qui font du JavaScript auront même droit à un support affiné de certains framework JavaScript comme React (qui reste pourtant à déconseiller quand on voit comment Facebook joue avec la licence).

Quid de la performance et de la consommation ?

C’était l’objectif après tout, alors ? Il y a une réelle évolution dans le ressenti. Je n’ai peut-être pas senti le même effet waouh que certains, notamment parce que je suis actuellement chez ma mère où n’importe quel navigateur doit s’incliner face à une connexion pourrie, mais pour ma part, notamment sur le rendu, ou sur les défilements et interactions sur les pages fortement dynamiques ne soufrent plus de micro-freeze. Je n’ai plus de lag lors de la bascule entre onglets, le chargement des outils de développements est plus rapide, bref, dans l’ensemble vous avez compris, le travail accompli se sent, du moins sur les performances et le ressenti, tout est plus agréable à l’utilisation sur ce navigateur. Les benchmarks qui pullulent confirment globalement cette sensation.

Je n’ai pas encore pu mesurer précisément ce qu’il en est sous Windows, mais sous Linux la consommation de RAM ne me semble pas nécessairement plus faible, c’est peut-être en lien avec les extensions que j’utilise (j’en ai rajouté deux/trois depuis le mois d’Août), ou le fait que le navigateur doit actuellement supporter une trentaine d’onglets ouverts depuis plusieurs jours (la joie de bosser sur des technos qu’on ne connaît pas bien, beaucoup, beaucoup de documentation). Il me semble toutefois que le garbage collector a toujours autant de mal à faire son boulot, quand on l’active manuellement (via about:memory), on gagne facilement plusieurs dizaines de mégaoctets. Il y a encore pas mal de boulot à faire selon moi de ce côté, mais il faut aussi avouer que les sites/applications web sont particulièrement lourds de nos jours, c’est particulièrement pénible d’ailleurs (palme d’or à la console Azure).

Alors ? on vire Chrome ?

Ça fait un bout de temps que je vous dis que Chrome devrait disparaître de pas mal de machines, mais malheureusement, on connaît les méthodes de Google pour s’infiltrer partout. D’autant plus sur mobile qui est plus que jamais le terrain sur lequel on devrait se battre vu l’évolution des usages grand public. Là aussi Firefox a une position compliquée, et son arrivée tardive fait que Chrome a pu régner sans partage pendant trop longtemps, au delà de son installation par défaut, une pratique pour laquelle Microsoft s’était pris des rafales de la part de la justice européenne avec Internet Explorer sous Windows (également avec le lecteur Windows Media). On attend encore un traitement équivalent…

Il y a un autre souci, dont les techniciens sont conscients, et Mozilla devrait d’autant plus chercher à la diminuer, c’est la dépendance à Google : un navigateur qui se présente comme un défenseur de la vie privée qui embarque Google Analytics sur les pages de ses services, ça la fout mal. Je n’ai rien contre une certaine collaboration entre éditeurs, c’est même une très bonne chose selon moi, mais la liste safe-browsing, qui permet de marquer et d’alerter les visiteurs à propos de sites malveillants, est elle aussi hébergée chez Google, et chaque récupération de la liste doit certainement s’accompagner d’un enregistrement chez eux, comme s’ils n’avaient pas déjà suffisamment d’informations sur le monde entier.

Je n’ai pas de problème à faire la promotion de Firefox malgré ce paradoxe, parce que j’aime le logiciel et son positionnement, et pas seulement « par défaut » comme le pense Cyrille Borne, parce qu’il n’existe rien d’autre en dehors de la « galaxie webkit/blink » (et c’est en grande partie vrai). Mais certains pourraient également se ranger se son côté si le comportement était un peu plus cohérent.

Ce n’est qu’un début

La refondation de Firefox était nécessaire, et Mozilla ne compte pas s’arrêter là : par exemple, il y a plein d’avantages à tirer parti des solutions graphiques pour plusieurs tâches (même les solutions intégrées), et la version 59 doit introduire WebRender qui permet justement d’exploiter nos GPUs. Non seulement on pourrait encore espérer un gain en réactivité, mais également, sur les machines mobiles, de consommation, certaines opérations étant plus efficaces sur un GPU qu’un CPU.

Il y a également d’autres évolutions en cours notamment en rapport avec le ciblage de votre activité, un des combats de la protection de la vie privée, qui est d’ores-et-déjà compliquée par l’introduction d’une fonctionnalité héritée du Tor browser, qui se base sur Firefox, et qui empêche un site d’exploiter le contenu d’un cookie créé par un autre domaine (ce qui est notamment le cas avec la publicité). Bref, la fin de ce gros chantier ne marque absolument pas le début d’une pause, parce que les artisans d’une société de surveillance de masse et de profilage continuent eux d’affûter leurs armes pour détruire ce qui vous reste d’intimité et de vie privée. Et un bon comportement ne suffira pas si l’on ne dispose pas des outils et services permettant de se sentir en sécurité, et en qui on peut avoir confiance.

2 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
Matth
Matth
01/12/2017 10:18

je n’ai jamais laché firefox depuis début 2005, mais je l’utilise en alternance avec Vivaldi depuis quelques temps.
Je ne sais pas si tu l’as essayé mais il est sympa, et assez léger !