Mozilla essaie de réinventer la roue...

Partager sur Facebook

Je n'ai jamais utilisé Firefox comme navigateur principal. C'est pas que je l'aime pas, mais c'est juste que j'utilise Opera et que celui-ci me convient.
Un truc qui m'énerve toutefois avec Firefox, c'est qu'il met 10 plombes à démarrer. Et pas seulement la première fois que je le démarre, mais à chaque fois. Il faut que j'attende au moins 10 secondes pour voir la fenêtre de Firefox apparaître. Bon vous allez me dire, qu'est-ce que ça peut bien me faire vu que j'ai dit que j'utilisais Opera ? En fait j'aime bien Firebug, l'outil de développement web de Firefox, qui reste toujours au dessus de l'outil d'Opera, Dragonfly. Bref on s'en fout, Firefox met 10 secondes à démarrer chaque fois et ça m'énerve.
Y a deux jours, je suis tombé sur une explication de mon problème...

Mozilla c'est pas des blaireaux, la sécurité avant tout !

So, what is the problem?
Le problème vient de NSS (Network Security System). Sans entrer dans les détails (parce que les détails je les connais pas en fait), il s'agit d'une couche de sécurité dans Firefox qui permet notamment le support de SSL, et qui réalise des tâches d'encryptage de données (voir ici pour plus d'informations). Or l'encryptage de données nécessite bien souvent l'utilisation de nombres aléatoires.

Nombres aléatoires ? De quoi tu parles t'as vu ?

C'est pas bien compliqué à comprendre, si je vous dis "un nombre entre 1 et 10 ?", vous allez me donner un nombre aléatoire (un nombre au pif quoi). Or la génération de nombres aléatoires en informatique est toujours une opération compliquée (en réalité impossible, et on parle plutôt de nombres pseudo-aléatoires). Un ordinateur fait ce qu'on lui dit et dans ce cas il est difficile de lui dire "bon mec, choisis un nombre au pif, fais comme tu le sens". Du coup, on triche en utilisant des algorithmes qui génèrent des nombres pseudo-aléatoires (des détails ici).
La majorité des langages de programmation proposent des fonctions de génération de nombres aléatoires qui marchent plutôt bien. Mais bon, chez Mozilla on n'est pas des blaireaux, et niveau sécurité on rigole pas ! On va donc se créer une méthode de ouf pour générer des nombres aléatoires au top, bien mieux que toutes les merdes qu'y a dans wiki ! Et la méthode la voilà...

Ca va ramer, mais ça sera pas d'la merde !

Les mecs de la team NSS se sont donc demandés comment faire... et là un mec (ou plusieurs, mais ça serait plus rassurant que ce soit qu'un seul mec) trouve l'idée du siècle : on va regarder dans tous les fichiers temporaires sur le disque dur pour générer notre nombre aléatoire ! Et oui ! Les fichiers temporaires vous savez là, Internet temporary files, dossier temp de Windows et compagnie. Là dedans y a plein de fichiers, leur nombre et leur taille changent sans arrêt, c'est carrément "aléatoire" du coup ! Ouech ça défonce trop !
Là où y a quand même un gros soucis, c'est que le disque dur est un périphérique méga lent pour l'accès aux fichiers (même si quand on s'en sert, on trouve ça rapide, sa vitesse est carrément dérisoire par rapport à la RAM par exemple). Pour vous en convaincre, faîtes un clic droit sur le dossier "Windows" par exemple puis "Propriétés", et comptait le temps que ça met à vous afficher le nombre de fichiers qu'il y a à l'intérieur. Donc lire une tonnes de fichiers sur le disque dur au démarrage d'un navigateur, tout ça pour générer des nombres aléatoires... comment dire... ils sont fous ? Et imaginez la tête de votre anti-virus quand Firefox va aller lire un peu partout sur votre disque dur...
  Mais Mozilla va plus loin : qu'est-ce qui se passe si on n'a aucun dossier temporaire hein ? Vas-y fais ton malin ? No problemo, on va lire les fichiers de police de caractères ! Et oui ! Non mais c'est pas des blagues hein.
Firefox base son système de sécurité sur le dossier temp d'Internet Explorer. Moi je trouve ça hallucinant.

Conclusion

Le problème est bien évidemment connu chez Mozilla, et en attendant un correctif, le support propose plusieurs méthodes pour accélérer le démarrage de Firefox 3.5. Et là accrochez vous : vider le cache de Internet Explorer (oui si on connait pas l'origine du problème, faut arriver à faire le lien !), supprimer les documents récents de Windows (comment ? Quel est le rapport avec Firefox ?), et plein d'autres petits trucs exotiques (historique, limiter la taille du cache de IE, ...). Et si vous me croyez pas, regardez ici !
Voilà donc pourquoi mon Firefox met 10 secondes à démarrer. Je navigue trop sur IE et donc le cache de IE fout le bordel. Punaise Microsoft c'est vraiment de la merde, ça casse mon Firefox quoi. En fait je me demande comment un type a pu avoir l'idée de faire ça, comment ça a pu être validé par Mozilla (ou par je sais pas qui, je sais pas trop comment ils se débrouillent niveau organisation), mais c'est quand même très très gros !  

Pour écrire cet article, je me suis basé sur l'article The Firefox 3.5 Fiasco.

Support Firefox à propos de ce problème : Firefox 3.5 slow to start troubleshooting & info

Commentaires

Vivien

- 15/02/2010 à 23:18:11 - # 1

C'est trop des mauvais kebabs chez firemerde

Pierre

- 18/02/2010 à 17:59:32 - # 2

Le développeur qui a inventé ça était payé par Google pour couler FF 3.5 en prévoyance de la venue de Chrome, c'est évident ! Ah non je suis con, ils étaient tous payés par Google...

Nouveau commentaire

Catégories
Liens