Firefox 2 et 3
Par Laurentj le vendredi, novembre 4 2005, 10:12 - Logiciels - Lien permanent
Gecko, en tant que plateforme de développement prend de plus en plus d'importance pour Mozilla. En effet, ils sont en train d'établir une roadmap dédiée à Gecko, en plus des roadmaps habituelles conçernant chaque produit (Firefox, Thunderbird...). Chacune des roadmaps produits vont se calquer sur la roadmap Gecko.
Firefox 1.5 n'est pas encore sorti qu'un premier brouillon de la nouvelle roadmap de Firefox vient d'être publié. Il indique que Firefox 2.0 sera basé sur Gecko 1.8.1 et non 1.9, et sortira dans la seconde moitié de 2006. Ce ne sera qu'à partir de la version 3 que Firefox pourra profiter des nombreuses nouveautés de Gecko 1.9, et ce, en 2007 seulement. Cette version 3 marquera d'ailleurs une étape importante dans l'histoire de Mozilla, puisqu'elle utilisera XulRunner, le lanceur d'applications XUL, intégrant Gecko 1.9.
Firefox 3.0 se résumera alors à un zip de fichiers XUL, XBL, javascript, et CSS. Ce qui correspond en gros aujourd'hui, dans votre répertoire Firefox, aux fichiers chrome/browser.jar, chrome/en-us.jar (ou fr-fr.jar), chrome/classic.jar (le thème classic) plus éventuellement quelques composants (.so ou .dll). Ce qui veut dire que vous aurez un navigateur de seulement 2-3Mo à télécharger, occupant seulement 2-3 Mo sur votre disque (en plus de XulRunner bien entendu, mais comme celui-ci sera partagé avec d'autres applications tierces...).
XulRunner interresse de plus en plus de monde. Il est encore loin de sa version 1.0, mais des applications commençent déjà à sortir, comme Daim XUL, un logiciel de traitement d'images, dont j'avais pu voir une démonstration plutôt impressionnante aux JDLL en octobre dernier.
Commentaires
Cela signifie t-il qu'il ne faudra pas attendre de nouvelles améliorations dans le support des standards par Gecko avant 2007 ?
Bobe : qui t'as dit que Gecko n'allait pas s'améliorer à propos des standards avant 2007 ? ;-)
Gecko 1.8, utilisé par Firefox 1.5 qui sort dans quelques jours contient déjà des améliorations par rapport à Gecko 1.7 (Firefox 1.0) : meilleur support CSS3, CSS2, support de SVG, XForms etc.
Une version 1.8.1 est attendu dans Firefox 2, et contiendra bien évidement encore des améliorations.
Les améliorations qu'il y aura dans Gecko 1.9 seront issues des grosses modifications dans l'architecture de Gecko, ce qui améliorera ses performances, et bien sûr aussi le support des standards car cela facilitera la correction de certains bugs CSS actuels et facilitera l'implémentation d'autres propriétés CSS et autres standards..
Tu pourras toutefois profiter de Gecko 1.9 avant 2007 car je pense que XulRunner 1.0 sortira avant Firefox 3.0.
Est-ce que gecko est autonome. Je sais qu'il est utilisé dans Epiphany mais est-ce aux prix de couteuse adaptation? Je me demande d'ailleurs pourquoi le XUL est utilisé dans ce navigateur qui n'a pour seul interêt que d'afficher des pages Internet... En ce qui conserne le XUL dans gecko: est-ce qu'il est transformé en widgets GTK (win32 pour windows) ou pas du tout... je pense que le mieux serais une plus grande promiscuité entre toolkit et le parsing du XUL: je me trompe?
oui
Pas du tout. Gecko peut être obtenu sous forme de simple library que l'on peut donc utiliser dans n'importe quel programme pour avoir un browser de page web. voir la page correspondante sur mozilla.org.
De quel navigateur parle tu ? Car en ce qui concerne Epiphany, il ne me semble pas qu'il utilise XUL pour son interface utilisateur. Mais peut etre effectivement qu'ils ont activé XUL dans Gecko. L'interet est alors de pouvoir afficher des pages web faites en XUL tout simplement.
Quand tu compiles Gecko, tu le compile avec le toolkit de ta plateforme. Sous linux, ça sera GTK. Donc oui. Quand tu met une balise button, gecko affiche un bouton gtk (ou win32 sous windows). Mais gecko reste maître dans la façon dont ça s'affiche, via CSS.
Rien à voir avec le parsing XUL il me semble. L'appareance et l'affichage des widgets se fait via CSS (avec la propriété -moz-appearance entre autre : -moz-appearance:button appelle le toolkit pour qu'il affiche un bouton).
Je ne sais pas ce que tu appelles une plus grande promiscuité, mais si tu parles de ces histoires d'intégration dans GNOME ou je ne sais où, ce n'est pas évident d'avoir une plus grande intégration. Déjà, gtk, ce n'est pas GNOME. C'est utilisé par GNOME, mais ce n'est pas parce que GNOME et FF utilisent la même lib, que FF a automatiquement la même appareance que les autres applis GNOME. (Surtout que gtk est lié statiquement à FF je crois).
De plus, il ne faut pas oublier que Gecko est multiplateforme, que le maximum de son code doit être commun à toutes les plateformes. c'est le problème de tous framework multi plateforme (regarde Java avec sa lib swing ou autre...). Plus tu va vouloir que ton appli s'intégre mieux dans un environnement donné (gtk, win32 etc.), plus il va falloir que tu "pollues" le code censé être commun à toutes les plateformes, avec les spécificités de cet environnement. Mais plus tu pollues, plus cela augmente les risques de bugs, rend difficile la maintenance etc. Le compromis est difficile à trouver je pense. Surtout dans le cadre d'un browser avec CSS.
Oui, Epiphany peut afficher des fichiers XUL
«Bobe : qui t'as dit que Gecko n'allait pas s'améliorer à propos des standards avant 2007 ? ;-)»
Toi-même dans ton billet :¬)
«Firefox pourra profiter des nombreuses nouveautés de Gecko 1.9, et ce, en 2007 seulement»
À moins que Gecko 1.8.1 ne fasse l'objet d'améliorations conséquentes, mais dans ce cas, le numérotage des versions est des plus étranges.
Oui, Dans firefox on ne pourra profiter de Gecko 1.9 qu'en 2007. Mais
1) tu pourras toujours utiliser des nightly avant l'heure 2) gecko 1.9 sortira certainement un peu avant, avec XulRunner
Tu vas me dire, oui mais c'est pas forcément stable etc.. mais c'est rarement instable. Ou alors tu as téléchargé un mauvais jour :-)
bon, ok ok, j'exagère un peu :-)
Pour le numérotage : non pas forcément. Gecko 1.9 va voir son architecture en bonne partie repensé : utilisation de Cairo pour la lib graphique, refonte de la partie layout qui gère l'affichage (à partir des css etc..) Bref, il va connaitre de grosse modifs en profondeur.
C'est pas pour autant que Gecko 1.8.1 ne va pas progresser beaucoup par rapport à 1.8.1 : même architecture, mais tu peux compter sur des améliorations dans CSS ( de propriété CSS2, CSS3) amélioration dans XUL, SVG et autre techno, corrections de bug etc.. Bref, ça vaudra tout de même le coup je pense. on verra.
Je crois comprendre la différence entre la gestion de XUL dans firefox et Epiphany. En gros, tout ce qui est visible dans firefox est en XUL même l'habillage de base alors qu'Epiphany ne permet que de visualiser des applis en XUl et non des extensions. Je vois que la grande force de mozilla est de séparer interface et présentation à l'aide du CSS : un language simple, libre (norme W3c) et fonctionnel. Ce n'est pas au niveau apparence que gnome et mozilla devrait se rapprocher mais plus au niveau de la simplicité de XUL. Je pense que ce dernier pourrait sensiblement améliorer la productivité de certains soft de gnome (ou XFCE qui est aussi basé sur GTK) et concentrer les developpeur sur les vrais problèmes plutôt que sur l'interface... (car même galde, je trouve ça un peu léger) Je suppose que XulRunner permettra de mettre plus facilement en place ce genre de chose mais il faut déjà que les developpeurs de Gnome se penche dessus.Des partenariats entre gnome et Mozilla sont-ils prévu?(Je pense surtout à gnome car il utilise gecko à la différence d'autres WM) Tu dis comme quoi firefox utilise la librairie win32 sur windows et que ça crée pas mal de soucis de "polution de code". Ok, soit mais pourquoi n'ont-ils pas plutôt pensé à utiliser gtk sur windows (comme Gimp par exemple).Ca leur aurait couté beaucoup moins d'ennuie.(surtout qu'avec l'arrivé de Vista, ils vont devoir tout recommencer à 0) De plus, ils ont du intégrer Cairo sur windows alors que celui-ci est déjà supporté par GTK 2.8. Seul inconvénient à mon sens : l'utilisateur l'embda pro-windows et non informaticien va vite être dérouté par l'accès aux dossiers avec gtk... Sinon, existe-il des projets de "constructeur d'interface" (GUI) pour XUL ou est-ce un peu trop tôt? Finalement, je m'interoge sur la librairie Cairo qui est riche mais assez lente face à d'autre moteurs.Je pense en particulier au moteur de Xara (un illustrateur vectoriel) qui est sous GPL dpuis peu.
Bon, je corrige un peu mes dires car je viens de m'appercevoir que Cairo a été developpé pour s'integrer avec les libs de win32.
De plus, je m'excuse pour l'indentation qui donne à mon texte un manque sérieux de clareté ;)
Tout à fait : toute application Mozilla utilise XUL pour son interface utilisateur (Firefox, Thunderbird, Nvu, la suite Mozilla etc..). En fait, la zone graphique utilisée par gecko, son moteur, c'est toute la fenêtre sauf en général la barre de titre et les bords.
Epiphany, Galéon, Camino, n'utilisent Gecko que pour le rendu des pages (la zone où tu vois le résultat de Gecko, ce n'est donc que la zone d'affichage de la page web). Ils ont préféré utiliser un autre toolkit pour l'interface utilisateur (pour des raisons de perfs, ou d'intégration dans l'environnement, ou autre)
Il y a eu un moment des rumeurs de rapprochement, mais depuis plus rien.
Non, ça ne pollue pas trop pour le moment car il y a dans gecko une couche d'abstraction de toolkit graphique. Mais comme toute couche d'abstraction, elle ne permet pas de profiter à fond des spécificités d'un toolkit, et donc ne permet pas une intégration poussée dans un environnement. Si on veut cette intégration poussée, cela oblige des contournements, des hacks, bref ce que j'appelle de la "pollution" de code. Les devs de Mozilla évitent bien sûr au maximum ce genre de chose, tout en essayant de faire en sorte qu'une appli XUL puissent s'intégrer au mieux dans l'environnement natif.
Faut pas confondre les toolkits d'interface, et les libs graphiques. Cairo est une lib graphique "bas niveau". Cairo est utilisé par Firefox 1.5, quelques soit la plateforme, pour l'affichage de SVG et Canvas. Firefox 3.0 utilisera Cairo pour l'affichage de tout : HTML, XUL (sauf les widgets de UI spécifique à l'environnement)
C'est bien pour ça qu'ils utilisent le toolkit natif à l'environnement.
C'est de moins en moins vrai. Et puis Cairo permet de faire ce que ne peuvent faire d'autres moteurs. Par exemple tout ce qui est export : cela va permettre par exemple de transformer une page web en PDF, d'avoir une meilleure impression (POSTCRIPT) etc.. De plus les autres moteurs supportent-ils autant de plateforme que Cairo ?
Merci pour tes explications! C'est beaucoup plus limpide maintenant!
Tu parles de firefox 3.0, je suppose qu'il tournera avec un gecko 2.0? J'en déduis que l'utilisation de la lib Cairo va entrainer un sacré boulot car afficher le HTML, le XUL etc avec ça me parait monstrueux. Ne risque-t-on pas des régressions de la gestion des CSS/HTML?
Pour les concurents de la lib Cairo, tu as entièrement raison: le moteur de Xara est surtout déstiné au SVG et il n'est supporté que par windows. (en voie d'être supporté sur linux depuis l'ouverture du code)
Pour les transformations en PDF/PostScript,ce serait un bon en avant ... qui n'a jamais été embêté par ce problème récurent!
« Gecko (...) C'est une **plate-forme** de développement, utilisée par pas mal de soft. (...) Il faut donc raisonner gecko EN TANT QUE PLATEFORME, et non en tant que simple logiciel. » (Laurent Jouanneau, 2005-11-05, http://standblog.org/blog/2005/11/04/93114483#c13750)
Lire Daniel Glazman, « Comment on the comment », Glazblog, 2005-11-16, http://www.glazman.org/weblog/dotclear/?2005/11/16/1383. Je regrette qu'il n'y ai pas de version en français.
« Ce qui veut dire que vous aurez un navigateur de seulement 2-3Mo à télécharger, occupant seulement 2-3 Mo sur votre disque » (Laurent Jouanneau)
On pourra ajouter les modules de langue, alors. Et en faire un logiciel multilingue, dont on modifie la langue de l'interface comme on change de « thème ».
Il suffit de rajouter une listbox et un bouton. Tout est déjà implémenter (cf la suite mozilla dans laquelle c'est possible de switcher d'une langue à une autre comme on change de thème)
« Lire Daniel Glazman, « Comment on the comment », Glazblog, 2005-11-16 »
Lire Daniel Glazman, « The response », Glazblog, 2005-11-17, http://www.glazman.org/weblog/dotclear/?2005/11/17/1385 .