Geckozone est un Club Unesco

Le développement de Gecko, le moteur de rendu des logiciels Mozilla

Profil(s) : Novice Confirmé
Date : 20 mai 2006
Auteur : Omnisilver

Nous allons d’abord voir ce qu’est Gecko, d’où vient ce nom, puis la façon dont il est développé, illustrée par quelques exemples.

Importance de Gecko

Gecko est un moteur de rendu, c’est à dire qu’il permet de lire le contenu Web tel que HTML, CSS, XUL, et JavaScript, puis de le représenter sur l’écran de l’utilisateur ou à l’impression.

C’est le composant majeur de tous les logiciels Mozilla (Firefox, Thunderbird et la suite Mozilla/Seamonkey), d’où geckozone ! Une mise à jour de ce moteur de rendu apporte donc en général de nombreuses nouveautés.

Il est également utilisé par de nombreux autres logiciels .

Origine du nom Gecko

Le projet Mozilla est né de la libération du code source de Netscape (pour plus d’informations à ce sujet, je vous conseille de lire ce bref historique du projet Mozilla par Tristan Nitot, président de Mozilla Europe)

Ce nouveau moteur de rendu est passé par divers noms, notamment NGLayout, puis Netscape a médiatisé le mot Gecko, qui est alors devenu le nom de référence (un Gecko étant un lézard d’une famille particulière) :

Gecko

Développement de Gecko

On peut assimiler le développement de Gecko à un arbre composé de deux parties :

  • Le tronc (ou trunk en anglais) désigne le code principal de Gecko.
  • Les branches (ou branch), qui sont des ramifications du tronc.

Le développement a lieu de la manière suivante :

    • Le tronc est en évolution continuelle, il n’est pas stable : les développeurs corrigent des bugs, ajoutent des nouvelles fonctionnalités, créant de nouveaux bugs, ...

Les versions de Gecko proviennent des branches, qui se doivent donc d’être le plus stable possible afin que la version de Gecko fournie le soit également.

    • A l’approche de la création d’une nouvelle version de Gecko, le tronc est gelé, ce qui signifie que les modifications y sont interdites (sauf celles approuvées par les responsables, améliorant la stabilité et corrigeant des bugs).
    • Une fois que le tronc est considéré comme suffisamment stable, une branche est créée et des responsables sont désignés, qui auront la capacité d’accepter ou de refuser les patchs qui seront appliqués à la branche.
    • Lorsque la branche a été créée, le tronc est rouvert et ses modifications peuvent reprendre normalement. Le tronc et la branche évoluent alors en parallèle l’un de l’autre.
    • Lorsqu’un développeur apporte un patch, trois cas de figure se présentent :
      1. Le patch ne présente pas de risque d’instabilité, il peut être appliqué sur le tronc et sur la branche.
      2. Le patch présente un risque potentiel, il n’est appliqué que sur le tronc.
      3. S’il modifie de façon profonde Gecko, il est développé sur une branche particulière, comme l’a nécessité par exemple la fonction de retour rapide (ou fastback cache).

Actuellement la branche qui permettra à Gecko de passer le test Acid2 est dans le troisième cas, c’est la "reflow branch" (développée par dbaron)

    • De temps en temps la branche et le tronc sont resynchronisés pour éviter qu’ils ne divergent trop, on appelle ça une fusion (ou merge). Il peut s’agir de fusions partielles (modification par modification) ou complètes.

Exemples d’évolution du tronc et des branches

  • Auparavant, les versions de Mozilla 1.X provenaient chacune d’une branche 1.X de Gecko (par exemple Mozilla 1.5 provenait de la branche 1.5, Mozilla 1.7 de la branche 1.7, ...)
  • Firefox et Thunderbird 1.0 étaient basés sur une branche 1.7 (en orange sur le schéma)
  • Firefox et Thunderbird 1.5 sont basés sur une branche 1.8 (en bleu sur le schéma) :
PNG - 43.9 ko
Feuille de route de Gecko

On peut voir sur ce schéma que Firefox et Thunderbird 2.0 seront également basés sur la branche 1.8, mais les versions 3.0 seront elles basées sur la future branche 1.9 (en rose sur le schéma).

Logiciels utilisés pour le développement

Pour développer Gecko, Mozilla utilise :

  • le logiciel Bugzilla qui permet à tous (utilisateurs et développeurs) de rapporter et de suivre les bugs
  • le système de contrôle de version CVS
  • le logiciel Tinderbox qui permet de vérifier si le code source passe la phase de compilation
  • le logiciel Bonsai, qui permet de voir tous les changements apportés sur le CVS (ou une partie de celui-ci, comme un répertoire particulier, une branche, etc.) sur une période de temps donnée et quels en sont les auteurs.

Ainsi, lorsque Tinderbox révèle un problème de compilation, il est ensuite aisé d’identifier la partie du code incriminé ainsi que l’auteur du problème en utilisant Bonsai.

Sources : Ptit Lutin pour le développement de Gecko, mozilla.org pour le schéma, devmo pour les fonctions de Gecko, et l’équipe Frenchmozilla pour ses infos et corrections.

Articles dans la même rubrique

Commentaires

(Si vous recherchez de l'aide pour l'utilisation d'un produit, veuillez utiliser les forums de Geckozone. Les commentaires concernent uniquement l'article. Merci.)

Afficher les commentaires (4) Ajouter un commentaire
Un message, un commentaire ?

(Pour créer des paragraphes, laissez simplement des lignes vides.)

Lien hypertexte (optionnel)

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d'informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Qui êtes-vous ? (optionnel)