Graphismes

Stuart travaillant sur Cairo, sa présentation se concentre sur cet aspect. Cairo est une librairie graphique puissante qui va à terme gérer l'ensemble de l'affichage (interface et pages) sur toutes les plate-formes dans Firefox 3[1]. Au menu des évolutions, une rapidité et des performanes accrues (meilleur utilisation des capacités des cartes vidéos) accrues, une meilleure gestion de l'anti-aliasing, des possibilités de faire pivoter ou de modifier la taille du contenu affiché (on imagine par exemple des effets de transition entre plusieurs onglets), ou de modifier la carte des couleurs (peut-on envisager par exemple une extension permettant de modifier les couleurs à la volée pour les personnes atteintes de daltonisme ?). Le support de SVG sera amélioré. Cairo devrait également améliorer le rendu du texte, en gérant par exemple les ligatures.

Firefox 3 devrait aussi voir le retour des Gif animées de l'époque héroïque du web, via un nouveau format, APNG basé sur PNG et développé dans le cadre du Google Summer of code. J'avoue ne pas trop voir l'intérêt pour l'instant, mais sans doute est-ce lié aux souvenirs douloureux des premières pages personnelles pleines de machins gesticulants.

Au niveau CSS, Gecko devrait passer l'Acid Test et implémenter un certain nombre de fonctions des futures CSS3.

les applis web

Mais là où les modifications seront à mon avis les plus importantes, c'est au niveau de Gecko en tant que plate-forme riche pour les applications de demain:

  • Firefox sera une application fonctionnant au dessus du moteur XulRunner. L'avantage est que dès lors, tout utilisateur installant Firefox disposera de XulRunner et pourra ainsi utiliser d'autres applications XUL. Bref, un bon moyen de propager la technologie. Par ailleurs, la fondation Mozilla travaille également sur des composant permettant d'embarquer des applications XUL au sein d'autres applications: un contrôle ActiveX pour windows, une widget pour Camino sous Mac, un composant GTK... (XulRunner est lui multi-plateforme). edit du 28.12 Un billet explique comment utiliser le contrôle ActiveX pour afficher du XUL dans IE. Ca a l'air de marcher et d'être simple :-).
  • Gecko va continuer à s'enrichir de fonctionnalités pour travailler en mode déconnecté:
    • stockage local
    • détection du statut en-ligne / déconnecté
    • meilleure utilisation du cache pour une utilisation en local
    • la tendance actuelle est en effet aux applications en ligne: calendrier, gestion de plannings, bureautique, etc. L'avantage est que l'on peut accéder à ses données depuis n'importe quel point d'accès au réseau, et de plus en plus via des médias différents, ordinateur, téléphone, etc. L'inconvénient est que sans connection réseau on n'a plus rien. D'où la nécessité de pouvoir travailler également en mode déconnecté, avec une sauvegarde de ses données, et de pouvoir basculer de manière transparente entre les modes connecté et déconnecté. La volonté des développeurs de Gecko est d'aller dans cette direction, et il vont probablement pour cela s'appuyer entre autre sur les propositions du WHATWG[2] dont certaines sont déjà implémentées dans Firefox 2
  • une nouvelle API devrait permettre de faire du XMLHttpRequest vers d'autres sites[3]
  • JavaScript devrait continuer à monter en puissance, le but étant d'implémenter la norme ECMAScript 4 / JavaScript 2 (cette spécification n'est pas encore finalisée je crois et Gecko 1.9 n'implémentera peut-être qu'un "javascript 1.9" intermédiaire). J'ai trouvé quelques sites sur le sujet, j'essaierai de faire un billet prochainement.
  • en plus de JavaScript, Python devrait faire son apparition en tant que langage utilisable dans les applications XUL. (mais, à la différence de JavaScript, la fondation Mozilla n'a pas l'intention de développer d'interpréteur Python, celui-ci devra donc être fournis à part par les applications qui comptent l'utiliser).
  • les 2 langages sur lesquels s'appuie l'interface des applications Gecko, XBL et XUL, vont eux aussi être enrichis, même si XBL2 ne sera peut-être pas complètement supporté. Du côté de XUL, on devrait notamment voir de nouvelles fonctionnalités au niveau des templates (actuellement, ceux-ci permettent d'afficher des contenus dont la source est un fichier RDF. Désormais, la source pourra également être MozStorage, la base de données interne à Gecko basée sur SQLite, un simple fichier XML, ou un object JavaScript).

En vrac

Firefox 3 devrait aussi contenir:

  • un meilleur modèle de sécurité
  • des évolutions au niveau de la gestion des extensions
  • de nouvelles fonctionnalités pour facilité la mise au point des applications.
  • Firefox 2 est compatible sous windows avec de nombreux outils offrant plus d'accessibilité, comme par exemple les lecteurs d'écran. Le support de ces matériels sous Linux et Mac est en cours.

Bref, Firefox 3 devrait fournir une plate-forme pour des applis en ligne toujours plus puissante, j'en salive d'avance :-)

Notes

[1] actuellement Cairo est déjà utilisée pour le rendu du SVG et des Canvas. A l'avenir, elle sera la seule librairie graphique utilisée par Gecko

[2] le WHATWG dans Wikipedia et par lui-même

[3] XMLHttpRequest est la commande de base sur laquelle reposent AJAX et la plupart des nouvelles applications riches. Elle permet l'envoi de requêtes au serveur et le traitement de leur réponse sans recharger la page en cours. Mais, pour des raisons de sécurité, les requêtes sont actuellement limitées au serveur d'où provient la page. Pour interroger d'autres serveurs, il faut utiliser différentes astuces, cf par exemple ce billet sur les problématiques d'Ajax cross-site