Firefox : une première ébauche du nouveau débogueur open source

Déjà compatible avec Chrome et Node.js 32
En bref
image dediée
Web
Vincent Hermann

Mozilla planche actuellement sur une réécriture complète du débogueur inclus dans Firefox. L’éditeur se prépare à se débarrasser de l’ancien composant écrit avec son langage XUL et se dirige vers une version plus modulaire créée à partir des bibliothèques React et Redux. Une première ébauche peut être testée dans les Nightly du navigateur.

Le débogueur est un composant particulièrement important des navigateurs. Il fait partie des outils proposés aux développeurs pour les aider à concevoir leurs sites et applications web. Ces outils sont l’une des forces de Firefox, Mozilla ayant toujours veillé à garder un avantage dans ce domaine. Mais ils utilisent parallèlement le langage XUL, ouvert mais propriétaire, dont l’éditeur se débarrasse petit à petit.

Dans le cas du débogueur, la réflexion était en cours depuis un moment : faut-il moderniser le code existant ou tout repenser ? C’est la seconde approche qui a finalement été retenue. Elle permet de retravailler le composant avec deux objectifs précis : fournir une structure modulaire modernisée et en faire un élément générique qui pourra être réutilisé ailleurs. Le débogueur ne sert pas en effet que pour Firefox.

Mozilla veut se débarrasser de XUL sur l'ensemble des outils

Mozilla réécrit donc intégralement son débogueur et a présenté en fin de semaine dernière une première ébauche de son debugger.html. Le code s’appuie uniquement sur les technologies du web, en utilisant notamment les outils open source React et Redux, créés par Facebook. React en particulier est une bibliothèque régulièrement utilisée pour la conception d’interface dynamiques, une variante native existant pour les applications mobiles.

Dans un billet de blog, le responsable des outils développeurs, Bryan Clark, indique que l’ancien code en XUL (XML User Interface Language) était complexe à entretenir : « L’ancien débogueur était incroyablement difficile à modifier, en bonne partie à cause de XUL. XUL est une toile d’araignée de composants de modèles et de vues qui empêchait souvent les changements les plus simple d’être facilement réalisés ».

Une grande partie du travail a consisté à revoir le modèle de développement, le code se retrouvant découpé en modules plus petits. « Nous pensons que cela rendra le débogueur et tous nos outils de développement plus faciles à aborder, prévisibles, compréhensibles et testables. » C’est parallèlement une réécriture de longue haleine et il ne faut pas attendre de résultats finalisés avant un bon moment, seule une préversion étant pour le moment disponible.

Une interface divisée en trois zones

Cette dernière présente une interface en trois panneaux. La partie de gauche s’occupe d’afficher les sources du site ou de l’application web en cours de débogage. Au centre, la plus grosse partie de l’écran est consacrée à l’éditeur lui-même pour intervenir sur le code lui-même. Quant à la zone de droite, elle affiche la pile des appels, les breakpoints ainsi que les variables quand le débogueur est à l’arrêt.

Le nouveau debugger.html est intégralement open source et dispose de son propre dépôt sur GitHub. Au sein de Firefox, il se connecte au navigateur via le Firefox Remote Debugging Protocol. Mais puisqu’il s’agit d’un composant qui se veut aussi générique, on peut le « brancher » sur Chrome et Node.js via le Chrome Debugging Protocol également. Mozilla travaille même à rendre son composant intégrable dans un autre éditeur pour être utilisé en tant que CLI (Command-line Interface).

debugger firefox débogueur html

Renforcer la compatibilité avec les autres plateformes

Au cours des prochains mois, le projet va continuer, avec un accent mis sur la facilité à aborder le nouveau composant, notamment pour tous ceux qui veulent participer. Mozilla tient également à rendre son débogueur plus accessible sur les autres plateformes, la compatibilité avec Chrome et Node.js n’étant qu’un premier pas. Pour tester debugger.html, il suffira de récupérer la dernière version Nightly depuis le lien ci-dessous. Pour rappel, il s’agit de versions très peu testées dans lesquelles Mozilla expérimente ses nouveautés. Elles s’installent en parallèle des canaux final/bêta et Aurora, qu’elles ne remplacent donc pas.

debugger firefox débogueur html


chargement
Chargement des commentaires...