Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Pb avec les overvlays : barre d'outil qui ne s'affiche pad

Envoyé par : Titeuf

Date : 16/03/2005 12:00

Bonjour à tous,

Je tatonne xul et j'essaye de mixer différent tutorial pour créer une barre d'outil. La première chose que j'essaye de faire c'est d'afficher dans FF (1.0.1FR/XP SP 2) le script suivant (tiré tout bêtement du tuto "findfile", adapté pour mes test) :

Code findfile.xul :

<?xml version="1.0" encoding="ISO-8859-1" ?>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<toolbox id="navigator-toolbox">
 <toolbar id="findfile_toolbar">
   <label control="findfile_filename" value="Recherche des fichiers nommés:"/>
   <textbox id="findfile_filename"/>
   <label control="findfile_dir" value="Répertoire:"/>
   <textbox id="findfile_dir"/>
   <button label="Parcourir..."/>
 </toolbar>
</toolbox>
</overlay>

Je demande d'affiche une nouvelle barre d'outil comprenant 2 labels et 2 textbox puis un bouton, le tout dans la barre d'outil... Je test le truc en glissant le .xul dans FF et hop ça fonctionne mais pas dans la barre d'outil. Je crois comprendre que les overlays c'est moins simple que les "windows", du coup je me dis qu'il faut passer par la case "installation".

Je déplace donc mon dossier "findfile/" (comprendant un sous-dossier nommé "content", qui contient lui-même 2 choses : contents.rdf et findile.xul) dans le dossier /Mozzilla firefox/chrome/.

Contenu de contents.rdf :

<?xml version="1.0"?>

<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:chrome="http://www.mozilla.org/rdf/chrome#">

  <RDF:Seq RDF:about="urn:mozilla:package:root">
    <RDF:li RDF:resource="urn:mozilla:package:findfile"/>
  </RDF:Seq>

  <RDF:Description RDF:about="urn:mozilla:package:findfile"
        chrome:displayName="Mon Application"
        chrome:author="nom"
        chrome:name="monapplication"
		chrome:extension="true">
		
  </RDF:Description>

	<RDF:Seq RDF:about="urn:mozilla:overlays">
	  <RDF:li RDF:resource="chrome://navigator/content/navigator.xul"/>
	</RDF:Seq>
	
	<RDF:Seq RDF:about="chrome://navigator/content/navigator.xul">
		<RDF:li>chrome://findfile/content/findfile.xul</RDF:li>
	</RDF:Seq>
  
</RDF:RDF>

Comme convenu, les balises indiquant l'utilisation de l'overlay "navigator" est mentionné dans le .rdf.

Ensuite je modifie le fichier "installed-chrome.txt" de Mozilla Firefox/chrome en lui ajoutant les lignes suivantes :

content,install,url,resource:/chrome/findfile/content/

Enfin je supprime "chrome.rdf", je ferme FF et je le relance. "chrome.rdf" dispose bien d'une entrée "findfile".

Dans la barre d'adresse Lorsque je saisie :

chrome:/finfile/content/ 

Et bien l'appli se lance mais pas dans la toolbar elle apparait sous forme "windows"...de la même façon que si j'avais glissé le .xul dans FF.

Et là je m'en remet à vos compétences...parceque là je trouve pas d'explication dans les tutos :/

Merci à tous.

# Re: Pb avec les overvlays : barre d'outil qui ne s'affiche pad

Envoyé par : laurentj

Date : 17/03/2005 13:13

En ce qui concerne le tutoriel, tu n'as pas du faire attention dans le sommaire : ;-)

Ce tutoriel décrit XUL tel qu'il est défini dans Mozilla 1.4.

Il faut donc savoir que les exemples du tuto ne fonctionnent pas forcément dans Firefox.

En l'occurrence, ton problème, c'est que ton overlay cible un mauvais fichier xul. La toolbar dans firefox n'est pas situé dans chrome://navigator/content/navigator.xul : il n'y a pas de package navigator dans Firefox. Par contre, il y a un package "browser". La toolbar se trouve dans chrome://browser/content/browser.xul.

Cela ne résoudra pas forcément ton problème entièrement. En effet, vérifie dans browser.xul qu'il y a bien une toolbox avec l'id navigator-toolbox. Ce n'est pas sûr qu'elle ait cet id.

Quand on veut appliquer un overlay sur une interface d'une application XUL (donc firefox, thundebird, mozilla ou autre), il faut toujours aller voir dans les packages de ces navigateurs, voir les fichiers xul incluant ce qu'on veut modifier.

# Re: Pb avec les overvlays : barre d'outil qui ne s'affiche pad

Envoyé par : Titeuf

Date : 17/03/2005 14:37

Hello !

Ho mince !!!! Pfff, c'est toujours tellement con ce genre de truc qui te bouffe du temps. Est-ce que cela signifie que je devrais à terme proposer au téléchargement 2 XPI, l'un pour mozilla l'autre pour FF ?

# Re: Pb avec les overvlays : barre d'outil qui ne s'affiche pad

Envoyé par : laurentj

Date : 18/03/2005 15:17

tu peux, mais tu peux aussi mettre dans un seul package des overlays pour les deux navigateurs, comme il faut mettre aussi dans ce cas un fichier install.js pour Mozilla, et un fichier install.rdf pour Firefox dans le xpi.

Pour les overlays, tu fais donc un overlay spécifique à Firefox, un autre spécifique à Mozilla, et tu les déclares tout les deux dans ton content.rdf :

 <RDF:Seq RDF:about="urn:mozilla:overlays">
  <RDF:li RDF:resource="chrome://navigator/content/navigator.xul"/>
  <RDF:li RDF:resource="chrome://browser/content/browser.xul"/>
 </RDF:Seq>

 <RDF:Seq RDF:about="chrome://navigator/content/navigator.xul">
   <RDF:li>chrome://findfile/content/findfile.mozilla.overlay.xul</RDF:li>
 </RDF:Seq>

 <RDF:Seq RDF:about="chrome://browser/content/browser.xul">
 <RDF:li>chrome://findfile/content/findfile.firefox.overlay.xul</RDF:li>
 </RDF:Seq>

Tu peux déclarer autant d'overlay que tu veux, qui sont déstinés à des packetage différent. Si le fichier à qui il est déstiné n'est pas là, l'overlay ne sera pas appliqué, c'est tout.

Sinon, je ne suis pas d'accord avec toi, la perte de temps que tu dis n'a aucune justification. Tu veux que ton truc soit compatible avec deux logiciels différents. C'est donc normal que tu ais des choses spécifiques à faire pour chacun de ces logiciels.

# Re: Pb avec les overvlays : barre d'outil qui ne s'affiche pad

Envoyé par : Titeuf

Date : 19/03/2005 19:23

Ok super merci pour toutes ces infos !

Sinon je peux t'assurer que je développe pour l'instant sur FF et que de la doc XUL/FF y'en a pas des masses, du coup je perd beaucoup de temps à chercher les spécificités pour FF. Heureusement que tu es là ;-D !

Pour info depuis que j'ai commencé sérieusement à m'intéresser à XUL, j'ai bloqué sur :

  • 1. L'accès restreint à un webservice distant que j'ai crée avec nuSoap et PHP : je ne suis pas arrivé à configurer FF (même en suivant la doc de mozilla concernant l'utilisation de SOAP...y'a que pour Mozilla et pas FF d'ailleurs, je crois qu'il est là le pb :/, du coup je fais ça en local avec un serveur).
  • 2. En ce moment encore je cherche à savoir pourquoi lorsque je fais un "window.openDialog" j'ai un "Security error" code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)"...j'estime ne pas avoir assez cherchez pour poser la question...mais bon pendant qu'on y est ;-D

Ca me rappel PHP au début...une erreur toutes les instructions et à l'époque mySQL se tappait en ligne de commande...je m'en suis sortie et maintenant les forums PHP/MySQL sont tels qu'une question trouve réponse sans la saisir...espérons que cela soit de même pour XUL ;-D

# Re: Pb avec les overvlays : barre d'outil qui ne s'affiche pad

Envoyé par : laurentj

Date : 21/03/2005 16:19

je cherche à savoir pourquoi lorsque je fais un "window.openDialog" j'ai un "Security error" code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)

Parce que, comme c'est indiqué, c'est à cause d'un problème de sécurité. Imagine qu'un type sur un site web fasse un openDialog avec une boite de dialogue modale, en plein écran, avec rien pour la fermer ;-)

Il y a certainement d'autres raisons.

# Re: Pb avec les overvlays : barre d'outil qui ne s'affiche pad

Envoyé par : Titeuf

Date : 22/03/2005 11:47

Ouaip et ben la raison c'est parceque l'appli n'est pas signé d'après ça : http://ljouanneau.com/blog/XUL/2003/06

Or comme le souligne justement le billet, comment faire lorsque l'on est en phase de développement ? Dois-je m'attendre à d'autres bog lorque .xul passera d'un "simple page" à une extension.

# Re: Pb avec les overvlays : barre d'outil qui ne s'affiche pad

Envoyé par : laurentj

Date : 22/03/2005 13:43

Ouaip et ben la raison c'est parceque l'appli n'est pas signé

c'est ce que je voulais dire. Je parlais des raisons du pourquoi il faut avoir les privilèges chrome.

d'aprés ça

oui, c'est moi qui l'a écrit ;-) Mais c'est vieux ça...

Or comme le souligne justement le billet, comment faire lorsque l'on est en phase de développement ?

si tu developpes une extension, il faut la déclarer dés le départ dans le chrome ! Dés le début du développement, sinon tu ne vas jamais t'en sortir :-) Il faut déclarer ton répertoire de travail dans le fichier chrome/installed-chrome.txt de Firefox

Tout ce qui faut faire pour préparer son environnement de developpement est dans le wiki. Tu as d'autres articles sur le fonctionnement du chrome au début du tutoriel.

Si tu développes une appli web (donc tes fichiers ne seront jamais dans le chrome, et n'auront jamais de privilèges ), le problème ne se pose pas. Si tu as le genre d'erreur que tu as indiqué, c'est que tu n'as pas le droit de faire la chose qui a provoqué l'erreur. Il faut donc faire autrement, tu n'as pas le choix.

# Re: Pb avec les overvlays : barre d'outil qui ne s'affiche pad

Envoyé par : Titeuf

Date : 26/03/2005 12:33

Désolé, je suis plus super dispo ces jours-ci. Merci pour la réponse, je vais re-tenter de faire ce qui est mentionné dans l'install des 2 FF...à noter tout de même que j'ai spécifié dans plusieurs de mes threads que les pb de sécurités se posaient parceque les droits à attribuer à FF pour le développement ne sont à priori pas les même que pour Mozilla (le fichiers prefs ne semblent pas être au même endroit ni contenir les mêmes directives :/), et que la doc au sujet de la sécu et FF est inexistante (toutes les docs parlent de Mozilla :/)...domage :/

Il n'est plus possible de poster des messages dans ce forum.


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.