Attention : Le contenu de ces pages n'a pas été mis à jour depuis longtemps. Il est probablement obsolète pour Firefox 4.0/Gecko 4.0 et supérieur. Pour du contenu plus récent, allez consulter developer.mozilla.org.

Nouveautes de firefox1 .5

Voici les nouveautés qu'il y a dans Gecko 1.8 (Firefox 1.5) pour les développeurs.

Technologies

XUL

;Overlays dynamiques: il est possible de charger dynamiquement un overlay, même si le fichier XUL est déja affiché (document.loadOverlay()). ;Fenêtres translucides: sur windows et linux, les fenêtres XUL avec un fond transparent peuvent s'afficher. ;XUL, bindings pour les préférences: des nouvelles balises XUL (balises prefWindow, prefPane, preference, preferences, Attribut preference-editable) permettent de construire une fenêtre de choix de préférences, sans écrire une seule ligne de code javascript. Les préférences choisies sont automatiquement enregistrées. Voir http://forums.mozillazine.org/viewtopic.(..).
nouvelles balises XUL
richlistbox, richlistitem, scrollcorner
attribut tabindex
il peut être utilisé sur presque tout les éléments.
attribut value sur <radiogroup>
permet de selectionner le radio bouton associé à la valeur.
attribut defaultButton sur <dialog>
on peut indiquer quel bouton est le bouton par defaut dans une boîte de dialogue.
attribut icon sur <button>
contient un nom d'icone. il permet d'indiquer à gecko qu'il faut qu'il affiche l'icone correspondante utilisée habituellement dans l'environnement utilisateur. Il peut prendre les valeurs accept, cancel, help, open, save, find, clear, yes, no, apply, close, print, add, remove, refresh, go-forward, go-back, properties, select-font, select-color, network.
<tabbrowser>
permet maintenant de réorganiser les onglets par drag and drop.

Evolutions sur la balise tree

Les colonnes n'ont plus besoin d'id. En effet, il leur est maintenant associé un objet nsITreeColumn. Dans le view d'un tree, ce n'est donc plus un ID que vous recevez mais un objet nsITreeColumn.

Vous pouvez aussi maintenant utiliser des colonnes de checkbox et la pseudo-classe CSS associée -moz-tree-checkbox.

Voir les details sur devmo

Javascript et DOM

Gecko 1.8 embarque Javascript 1.6. Cette nouvelle version inclus E4X, l'API XML pour Ecmascript, et des améliorations sur les tableaux. Voir aussi la doc de reférence sur les tableaux javascripts

Gecko 1.8 prend maintenant en charge les XML Events.

Il est possible aussi d'utiliser maintenant des caractères internationnaux dans les fichiers Javascript chargés à partir de fichiers XUL. (voir la page sur devmo)

XPCNativeWrapper est maintenant activé par défaut.

Il y a également une API pour améliorer l'accessibilité en DHTML ( http://www.mozilla.org/access/dhtml/ )

bfcache

Gecko 1.8 peut mettre en cache des arbres DOM. Cela permet par exemple à Firefox de pouvoir faire des back/forward instantannés.

CSS

  • propriété quote (open-quote, close-quote)
  • pseudo element :only-child
  • propriété pour le multi-colonnage CSS3 (-moz-column*) voir des exemples sur cette page : propriétés CSS counter
  • propriété CSS 3 overflow-x, overflow-y
  • nouveaux noms de curseurs pour la propriété cursor
  • propriété outline (-moz-outline est maintenant obsolete)
  • -moz-outline-radius pour faire des outline avec coins arrondis
  • compteurs CSS, qui permettent la numérotation automatique. Voir un exemple sur cette page : compteurs CSS
  • nouvelle rêgle @-moz-document , que l'on peut utiliser dans les feuilles de styles utilisateurs pour indiquer des styles à utiliser pour des sites précis.
  • pseudo-classe : :valid, :invalid, :out-of-range, :in-range, :disabled, :enabled, :-moz-read-only, :-moz-read-write

Autres

;Support de XTF: = eXtensible Tag Framework. Permet l'ajout de nouveaux namespace dans gecko, sans toucher au code de Gecko. On peut donc ajouter le support d'un nouveau langage XML dans Gecko, via une extension. Par exemple, l'implementation de Xforms utilise XTF. Voir les détails sur la page dédiée ;Prise en charge de SVG: langage xml pour faire des dessins vectoriels. voir la page SVG.
Prise en charge de l'élément <canvas>
cet élément fournis un espace où l'on peut "dessiner" en javascript. Voir http://developer.mozilla.org/en/docs/Dra(..).
Prise en charge de Xforms
permet d'utiliser ce puissant système de formulaire. Voir la page XForms.

API

;Accés à l'historique: on accéde plus facilement à l'historique dans le navigateur, ce qui permet à une extension d'afficher l'historique autrement, de mieux gérer les données de l'historique etc. ;API pour specifier les priorités de connexions HTTP: on peut mettre une priorité sur les connexions vers un serveur spécifique. ;API pour gérer l'utilisateur et les feuilles de styles utilisateurs: Les extensions peuvent maintenant déclarer des feuilles de styles additionnelles. Elles n'ont plus besoin d'éditer userContent.css pour ajouter des styles aux pages web (comme des attachements de composants XBL) ;API pour configurer les proxys: Il est maintenant possible pour les extensions de modifier la configuration des proxys sans toucher aux préférences utilisateurs. ;Ajout d'informations dans le user-agent:Il est maintenant possible d'ajouter des informations dans le user-agent sans écraser les infos ajoutés par d'autres extensions.
API pour la base de registre windows
une nouvelle API via l'interface nsIWindowsRegKey a fait son apparition pour acceder plus facilement à la base de registre de Windows (il s'agit de l'objet @mozilla.org/windows-registry-key;1. (nsIWindowsShellService::getRegistryEntry est donc obsolète)
;API les paramètres de lignes de commandes: les extensions peuvent désormais manipuler/obtenir plus facilement les paramètres données en ligne de commande quand l'application est lancée. (cela concerne les interfaces nsICommandLine et nsICommandLineHandler, qui seront du même coup gelées). Trés utile aussi pour les applications XulRunner.

Chrome

La déclaration de fichiers dans le chrome a été grandement amélioré. Ainsi on ne doit plus mettre de fichiers content.rdf mais un simple fichier texte (non xml), chrome.manifest. Voir sur les details sur la page Enregistrement Chrome.

Il est également possible de

  • fournir dans une extension des fichiers qui vont remplacer ceux d'une autre extension, d'un autre paquet jar

Gestionnaire d'extension

  • Il est maintenant possible d'avoir des extensions en dehors du repertoire extension du profile et celui de l'application
  • L'installation des extensions peut être fait en mettant simplement un XPI dans le repertoire extension du profil ou de l'application.
  • Désinstaller une extension est tout aussi simple, en supprimant le repertoire correspondant dans le repertoire extensions.
  • Les extensions peuvent être installées sur Windows en mettant des valeurs dans la base de registre de windows. Voir cette page
  • On peut indiquer dans le fichier install.rdf de l'extension (bug), la plateforme cible :
 <[[em:targetPlatform>Linux_gcc2</em:targetPlatform]]>
 <[[em:targetPlatform>Linux_gcc3</em:targetPlatform]]>
 <[[em:targetPlatform>WINNT_msvc</em:targetPlatform]]>
 <[[em:targetPlatform>OS2</em:targetPlatform]]>
  • on peut fournir des plugins de recherche dans les extensions, en les mettant dans un repertoire searchplugins du xpi (bug)
  • on peut indiquer les composants xpcom à installer en fonction de la plateforme (bug)

Ressources

Les informations sont issues de http://www.mozilla.org/projects/deerpark(..) .

Voir aussi la page sur devmo Adapter son application XUL à Firefox 1.5


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.