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.

Limitations de xul

Les applications XUL distantes (servies par un serveur web) non signées, appelées aussi "remote xul", n'ont pas accés à toutes les fonctionnalités proposées par les éléments XUL et tout les objets javascript. Ceci pour des raisons de sécurité.

Limitations des scripts non signés

Objets XPCOM

D'une manière générale, on ne peut faire appel aux composants XPCOM. Donc on ne peut utiliser Components.classes.getService() et createInstance() pour instancier des objets XPCOM.

Cela comprend par exemple, les fonctions de lecture/modification/création de fichiers, les manipulations de sources de données RDF etc.

Boites de dialogues

  1. On ne peut ouvrir de boite de dialogue avec window.openDialog . Mais faire un window.open sur un fichier XUL d'une boite de dialogue est possible
  2. On ne peut ouvrir une boite de dialogue de façon modale : elle sera toujours non modale.
  3. On ne peut utiliser des élements Dialog convenablement. Ainsi, il n'est pas possible d'afficher les boutons déclarés dans l'attribut buttons de la balise Dialog. Il faut que la boîte de dialogue soit enregistrée auprés de chrome (donc installée en locale). Voir le bug 224996 dans bugzilla

Wizard

Problèmes similaires à dialog. En partie résolue.

Autres problèmes avec certains éléments XUL

Beaucoup d'éléments XUL sont en fait des XBL, ayant donc des méthodes en javascript qui font appels parfois à des XPCOM. Ce qui pose comme dit plus haut, des restrictions. Il y a donc des méthodes et propriétés de balises XUL qui ne sont pas utilisables en remote.

  • on ne peut pas avoir ses propres custom tree view (depuis Firefox 1.5.0.4)

DTD, localisation

  1. On ne peut pas stocker des fichiers .dtd, utiles pour la localisation de l'interface, sur un serveur distant.
  2. On ne peut pas utiliser les stringbundles.

ToDo: A compléter.

Comment enlever ces limitations

En ce qui concerne les restrictions dues à des raisons de sécurité, voir ApplisWeb/ActiverLesPrivileges.

Pour les problèmes de localisation, il est possible de gérer cela coté serveur, en génerant les fichiers XUL par du PHP par exemple, et utiliser alors les outils de localisation disponibles coté serveur (gettext &cie).


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.