Quelques nouveautés de Firefox 3.1...
Par Clochix le mardi 30 septembre 2008, 23:59 - Technoweb - Lien permanent
Si vous ressentez un petit coup de froid cette nuit, c'est normal, c'est à minuit qu'interviendra le gel du code précédant la sortie de la première béta de Firefox 3.1, Shiretoko pour les intimes. L'occasion de citer en vrac quelques unes de ses nouveautés dont je n'ai pas encore parlé...
Les plus visibles
Les fonctionnalités les plus marquantes sont sans doute TraceMonkey et le
support natif du son et de la vidéo. TraceMonkey est une évolution du moteur
JavaScript, qui améliore la réactivité des sites très dynamique. Le chantier
est en cours, mais Shiretoko bénéficiera de premiers gains de performance.
Quant aux balises audio et video, elles permettront
d'insérer dans une page web du son et des vidéos qui pourront être lues
directement par le navigateur, sans avoir besoin d'installer le moindre plugin.
Ces balises sont disponibles dans les compilations nocturnes depuis un petit
moment, mais le design de leur interface est en cours de finalisation. De
nombreux articles ont déjà été consacrés au sujet, je n'y reviens pas.
Le p0rn mode devrait finalement être disponible dans la 3.1 finale, mais sans doute pas visible avant la béta 2. Cette fonctionnalité avait dans un premier temps été repoussée, les discussions sur son design n'étant pas assez avancées. Mais comme Chrome et IE8 se gargarisent d'offrir déjà cette fonction, elle a finalement été ré-intégrée à Shiretoko, quitte à en retarder la sortie. Pour les âmes pures qui ne suivent pas, le porn mode donne la possibilité de surfer sur des sites de cul[1][2] sans laisser de traces sur l'ordinateur, ni cookies, ni historique, etc.
Autres nouveautés très visibles, la petite animation quand vous naviguerez
entres les onglets à coups de Ctrl-Tab, et des évolutions du
système d'onglet, comme par exemple un bouton à droite pour ouvrir un nouvel
onglet (j'ai découvert récemment que tout le monde n'utilise pas
Ctrl-T pour ça !). Mozilla Links publie un billet assez complet sur le sujet[3].
Parcours simplifié du DOM
Le DOM est composé de nœuds de 11 types, dont les éléments, les attributs,
le texte, etc. Les fonctions habituelles pour se promener dans l'arborescence
d'un document (trouver les parents, enfants, frères et sœurs d'un nœud)
ramènent l'ensemble de ces nœuds, alors que souvent seuls les éléments nous
intéresse. Pour faciliter les choses, le W3C a défini une nouvelle interface, ElementTraversal
permettant de ne parcourir que les éléments d'un document. Cette interface
ajoute quatre propriétés à chaque nœuds : firstElementChild,
lastElementChild, previousElementSibling,
nextElementSibling, childElementCount. Pratique, et
dans Shiretoko depuis quelques
semaines
Chargement des scripts
Chaque fois que dans une page web le navigateur rencontre une instruction
lui disant de charger un script externe, il interrompt l'affichage de la page
le temps de charger et d'exécuter le script en question. C'est pour cela qu'il
est fortement conseillé de placer les scripts externes non pas dans l'entête de
la page, mais le plus près possible de la fin, idéalement juste avant le
</body>. Si le temps réel d'affichage de la page ne change
pas, l'expérience utilisateur est meilleure, puisque l'internaute voit sa page
s'afficher plus vite, et ne remarque généralement pas le temps de chargement
final des scripts.
Firefox 3.1 proposera une autre méthode, via l'ajout d'un attribut
defer à la balise script. Cela indiquera au
navigateur de ne charger et exécuter le script qu'une fois la page affichée.
L'évènement onload lui ne sera toujours exécuté qu'après le
chargement et la fin d'exécution de tous les scripts, qu'ils possède l'attribut
defer ou pas. Cf cette explication complète sur l'usage de defer
Gestion des couleurs
Depuis la version 3.0, la gestion des couleurs dans Firefox a été améliorée, et le navigateur peut utiliser le profil ICC d'une image pour mieux restituer ses couleurs. Pour l'instant, cette fonctionnalité est désactivée par défaut, il faut modifier une préférence avancée pour en profiter, car elle cause dans certains cas des problèmes de performance. Problèmes à présent résolus et le nouveau système de gestion de couleurs a été activé par défaut dans Firefox 3.1 pour toutes les images qui possèdent un profil ICC. L'affichage de photos sur des écrans correctement calibrés devrait donc gagner en qualité. Parlez-en à vos connaissances photographes, graphistes et autres amoureux de belles images, si elles sont encore dans l'erreur.
Pour plus d'infos, allez jeter un œil à cette introduction à la gestion des couleurs sur MDC (ainsi qu'à sa page de commentaires ou par exemple à ce billet).
Et aussi
- les chaînes JavaScript disposent (enfin) des méthode trim, trimLeft et trimRight, cf la discussion sur l'implémentation et le patch;
- on peut à présent modifier "en masse" les mots clés (tags) associés aux marques pages, via le gestionnaire de bookmarks, cf le ticket 412002;
- toujours à propos des mots-clés, leur saisie sera simplifiée grâce à une auto-complétion (ça devrait arriver très bientôt, cf le ticket 415960);
- les dernières compilations nocturnes atteignent à présent le score de 89/100 au test Acid 3, et Frédéric a montré que si certains patches sont intégrés, la 3.1 pourrait bien atteindre 93/100, voire 97/100 en activant le support de SMIL :-);
- Shiretoko proposer peut-être des méthodes JavaScript natives pour
sérialiser des objets en JSON et les dé-sérialiser: ces méthodes sont déjà
disponibles dans le chrome[4], mais pas encore
accessibles depuis les scripts s'exécutant dans une page web. Pour l'instant,
la finalisation de cette fonctionnalité est suspendue au travaux du groupe de
travail ECMA sur JavaScript 3.1 (lui aussi) "Harmony", afin que
l'implémentation soit conforme à la spécification. Pour voir à quoi ressemble
l'implémentation actuelle, tapez simplement l'url
resource://gre/modules/JSON.jsmdans votre navigateur: cette fonctionnalité est en effet implémentée directement en JavaScript, via un JavaScript code modules[5];
Plein de choses sont encore dans les tuyaux, et devraient me donner matière à de prochains billets, par exemple:
- les workers JavaScript que j'ai déjà évoqués mais avec lesquels je n'ai pas encore eu le temps de jouer
- peut-être la possibilité de faire des requêtes vers un autre site depuis du code s'exécutant dans une page web (c'est possible depuis FireFox 3 pour le code "privilégié", c'est à dire les extensions par exemple. Le spécification étant en plein travaux, je ne sais pas si cela sera finalement dans Shiretoko)
- le support de la propriété CSS @font-face, pour permettre de proposer à l'internaute de télé-charger les fontes qui lui manquent pour afficher au mieux un site. Cette fonctionnalité est apparemment déjà disponible chez la concurrence, mais je suis assez partagé: elle va simplifier la vie des travailleurs du web, mais risque de provoquer une inflation de fontes sur le disque des internautes;
- et bien plus encore, n'hésitez pas à consulter la liste prévisionnelle sur le wiki.
Notes
[1] je vais bien voir si les stats de ce billet explosent

[2] je vais aussi voir si ce billet vaut à mon modeste
journal les foudres de l'Anastasie de ma boîte, car oui, il y a encore des
tôles qui infantilisent leurs salariés en leur imposant un logiciel de contrôle
parental qui bloque surtout les billets de blogs osant affirmer que telle ou
telle chose sucks
, oups, pardon.
[3] et je m'étrangle en allant sur le dit billet avec un nightly non protégée par l'indispensable Adblock Plus et en constatant qu'il est tout pollué de publicités Google incitant à télécharger IE. Berk !
[4] c'est à dire les extensions, rien à voir avec le logiciel espion de Google
[5] un concept introduit dans Firefox 3 qui permet de partager des bibliothèques de code entre différentes modules
Commentaires
Excellent article. J'avoue que je ne suis pas trop plongé dans la technique et dans les tripes "complexes" de Shiretoko et ton article m'a appris pas mal de trucs.
Sinon, tu sais qu'on peut monter jusqu'à 97 / 100 en bidouillant un peu et en activant le support du langage SMIL ?
http://frederic.bezies.free.fr/blog...
En tout cas, merci pour ton excellent billet.
Bon mercredi.
> il y a encore des tôles qui infantilisent leurs salariés en leur imposant un logiciel de contrôle parental
Tu parles de CA, là ??
@Fred: merci, et oups, j'avais zappé ton billet, je m'étais arrêté à 93. Mais j'avoue qu'Acid3 en lui-même m'intéresse moins que les nouveautés JavaScript, CSS3, HTML5, etc, même si tout est lié et réciproquement. Euh, d'ailleurs deux des tickets que tu cites m'intéressent bien: l'ajout de
cloneNodedans les documents HTML (je ne sais plus si j'en ai déjà parlé ici, mais c'est une méthode qui m'a fait perdre bien des cheveux, je vais profiter du patch pour aller jeter un coup d'œil au code) et des animations SVG (avec l'amélioration des performances de JavaScript, peut-être une occasion de plus de montrer qu'on peut faire des flasheries en utilisant des standards).@Niko: non, ça fait quelque temps que je broute dans d'autres pâturages.
"Pour les âmes pures qui ne suivent pas, le porn mode donne la possibilité de surfer sur des sites de cul sans laisser de traces sur l'ordinateur, ni cookies, ni historique, etc."
Ceci, par contre, est pas normal. C'est pas comme ça que la lutte contre cette "maladie psychologique" sera un succès. Je rappelle que le porno est à la limite de la légalité (voire complètement illégal et immoral). Le "p0rn mode" devrait plutôt interdire l'accès aux sites de ce style, ou bourrer l'ordi de trackers et autres cookies.
@Mr Freeze: je partage pour ma part cet avis de Léo: . A partir du moment où c'est une activité qui se pratique entre individus libres et consentants, je ne vois pas où est le problème. Le principal problème du porno sur Internet est justement l'absence de consentement, aussi bien des acteurs, souvent contraints physiquement ou par des raisons financières, que des spectateurs, qui tombent régulièrement sur ce type de contenu sans l'avoir demandé. L'autre problème est la stigmatisation due justement à la morale dominante qui en fait une activité honteuse, et donc incite à avoir recours à des gadgets comme ce porn mode.
Bref, le porno en soi n'est ni illégal, ni immoral, en tout cas pas par rapport à ma morale, et en aucun cas une maladie. Mais si ça te dérange, il existe des extensions Firefox qui devraient te prévenir de tomber accidentellement sur ce genre de contenus. C'est ça qui est bien avec la panda: chacun est libre de le personnaliser pour l'adapter à ses usages.
Il ne faut pas forcément prendre ça au premier degré non plus. C'est aussi pour se moquer du marketing d'IE qui souligne plein d'autres raisons (valables aussi) d'utiliser ce mode privé tout en faisant hypocritement l'impasse sur son utilisation probablement la plus répandue.
Pour rappel, la bibliothèque d'affichage des images dans Mozilla s'appelle libpr0n, ça ne veut pas dire que ça ne sert qu'à ça. C'est juste une manifestation de l'esprit frondeur des développeurs.
p0rn mode... non pas vraiment.
'autre jour je suis allé dans un cybercafé pour imprimer un RIB dont j'avais besoin rapidement sans avoir le temps de passer par chez moi : j'ai tout effacé manuellement, mais je me suis dit qu'effectivement, pour les lieux publics un mode privé c'est pas du luxe. Et il y en a ! Universités, cybercafés, hôtels, mairies... ça fait quand même pas mal de cas où il pourrait éviter d'éventuels soucis.
Mr Freeze veut parler de la dépendance à la pornographie en tant que pathologie, c'est-à-dire des internautes qui ne peuvent plus "décrocher" du porno. On ne sait pas dire combien de personnes sont atteintes de ces troubles, mais le problème existe bien. Il conduit une dégradation des rapports sociaux, séparation, isolement, etc.
MAIS le mode pOrn de Firefox ne jouera aucun rôle vis à vis de cette dépendance - de la même façon qu'on ne peut pas demander au navigateur d'interdire les sites marchands aux personnes atteintes de troubles d'achats compulsifs.
Article très intéressant, merci bien.
De mon point de vue, la propriété font-face n'a que des avantages : l'impossibilité de proposer des polices à télécharger est une des caractéristique qui pousse les graphiste à privilégier flash dans beaucoup de cas (besoin d'une police originale ou d'un rendu "pixel perfect").
Une police ça prend quand même pas beaucoup de place sur un disque comparé à tout ce à quoi les utilisateurs son habitués (un album de musique, un film, une bibliothèque de photo... tout ça prend réellement de la place).
Je suis d'accord avec Joey. Le nom de mode incognito ou similaire est plus approprie et j'espere sera visible/activable facilement. J'utilise parfois les ordis places dans les lounges d'aeroport et je tombe sur les donnees du precedent utilisateur, ca fait peur. Quand j'utilise un ordinateur qui n'est pas le mien et j'efface tout en partant, c'est pas cool pour son proprietaire (cookies d'authentification, cache, etc...)
Porn mode c'est un nom un peu limitatif.
Les fonts ne restent pas sur le DD de l'utilisateur,e lle sont dans un cache qui est effacé
ceci pour en pas poser de problème de droits
@Joey et @Jean: je suis d'accord que le mode privé (son nom officiel pour l'instant, je crois) sera utile dans bien des cas, comme je le dis plus haut j'ai insisté sur l'aspect "porn" parce que je trouve assez hypocrite que cet aspect soit souvent occulté;
@lrbabe: certes une fonte ne prend pas énormément de place, mais imagine si pour chaque site que tu consultes tu dois télécharger une ou plusieurs fontes. Et, à moins que comme le dit Capripot elle ne soient placées ailleurs, ces fontes vont se retrouver dans ton dossier système ou équivalent, en tout cas accessibles à toutes tes applis. Bonjour la taille du menu dans ton traitement de texte ! Bonjour les problèmes de perfs (euh, je ne sais pas si c'est toujours d'actualité)
@Capripot: tu as une URL sur le détail de l'implémentation ? je viens de parcourir rapidement les commentaires du bug. Il y a beaucoup de débats sur les potentiels problèmes de sécurité, sur les formats de fontes à supporter, sur les problèmes de droit, mais je n'ai rien vu sur cette histoire de cache (je n'ai pas regardé le codes des différents patchs) => toute info supplémentaire sera la bienvenue
C'est marrant ces histoires de mode privé.
Dans FF ça fait un moment que j'ai un profil 'Stealth' (en français ça veut dire furtif) qui est décorellé de mon profil de travail. Ce profil est en mode parano, et il supprime tout quand je le ferme.
Avantage non négligeable supplémentaire : ce profil n'a aucune extension, il est donc très rapide pour le surf "à l'aveugle" que je pratique de temps en temps.