Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Message indésirable....

Envoyé par : cokinou

Date : 04/08/2008 16:07

Bonjour à tous,

Je développe une petite appli me permettant de lancer des applications situé un peu partout sur mon disque...

Tout (pour l'instant) marche sans problème, mais lorsque j'affiche une image qui n'est pas situé dans l'appli, j'ai le message suivant dans la console js :

No chrome package registered for chrome://xullauncher/Apps/monapp/image.png

En tant que tel, ca ne gène pas car il affiche quand même mon image mais j'aimerai savoir comment éviter d'écrire cette ligne dans la console...

Pour info, mon image est affiché via un svg inséré dans un xbl appelé dans ma page xul.... donc le code est un poil lourd pour que je le note ici ;-)

Si quelqu'un à une idée, je suis preneur....

Merci d'avance

# Re: Message indésirable....

Envoyé par : Paul Rouget

Date : 06/08/2008 10:23

Comment références tu l'image ?

# Re: Message indésirable....

Envoyé par : cokinou

Date : 06/08/2008 10:41

En fait, je le défini à partir du dossier de mon processus, puis je rajoute mon chemin relatif.

Mon image d'origine :

image = "monapp/image.png";

Mon image en type nsIFile à partir du dossier de mon processus :

var imagePath = directoryService.get('CurProcD', Components.interfaces.nsIFile);
var tabRelUri = image.split(/[\\/]/g);
tabRelUri.forEach(function(ele) {
    if (ele == '..') {
        imagePath = imagePath.parent;
    } else if (ele != '.') {
        imagePath.append(ele);
    }
});

Transformation de mon image de type nsIFile en uri

var fileHandler = ioService.getProtocolHandler("file")                  .QueryInterface(Components.interfaces.nsIFileProtocolHandler);
imageUri = fileHandler.getURLSpecFromFile(imagePath);

Et l'écriture du résultat dans ma balise pour finir :

this.setAttribute('image', imageUri);

Soit, en un peu plus clair : chemin relatif > image en nsIFile > uri (file://...)

Voili voilou, c'est compréhensible ce que j'ai mis ? :-)

# Re: Message indésirable....

Envoyé par : Paul Rouget

Date : 06/08/2008 14:36

cokinou a écrit:

...
Soit, en un peu plus clair : chemin relatif >
image en nsIFile > uri (file://...)

Voili voilou, c'est compréhensible ce que j'ai mis ?

Oui :)

Donc en effet, c'est étrange que tu aies ce message. Tu confirmes que tu n'as nul part de référence à chrome://.../image.png ? (fichiers css inclus)

# Re: Message indésirable....

Envoyé par : cokinou

Date : 06/08/2008 16:25

Paul Rouget a écrit:

Donc en effet, c'est étrange que tu aies ce
message.
Tu confirmes que tu n'as nul part de référence à
chrome://.../image.png ? (fichiers css inclus)

Effectivement je n'ai pas de référence directe à chrome://.../image.png

Mais peut-être que c'est l'utilisation qui en est faite qui provoque ce message.... comme je l'ai noté dans mon premier message, cette image est en faite inséré dans un svg (me permettant d'effectuer quelques filtres dessus), qui lui même est dans un xbl.... qui est appelé depuis ma page xul.... Donc c'est peut-être cet enchevêtrement de "boites" qui indique ce message.... et non le chargement initial...

Sinon, je vois pas d'où ca peut venir... le fantôme de la machine surement :-)

# Re: Message indésirable....

Envoyé par : Paul Rouget

Date : 06/08/2008 16:48

Tu changes l'attribut src de ton image ou tu crées l'image dynamiquement ?

# Re: Message indésirable....

Envoyé par : cokinou

Date : 06/08/2008 17:32

Paul Rouget a écrit:

Tu changes l'attribut src de ton image ou tu crées
l'image dynamiquement ?

Ni l'un ni l'autre, je charge mon image dans un svg qui la manipule ensuite....

Voilà ce que je fais dans mon xbl :

 <svg:svg>
   <svg:defs>
       <svg:filter id="shadow">
           [...mon filtre qui fait une ombre...]
       </svg:filter>
       <svg:g id="zone" fill="transparent">
           <svg:image xlink:href="" xbl:inherits="xlink:href=image" />
       </svg:g>
   </svg:defs>
   <svg:g>
       <svg:g>
           <svg:use xlink:href="#zone" filter="url(#shadow)" />
       </svg:g>
   </svg:g>
</svg:svg>

Ce qui charge l'image via <svg:image xlink:href="file://.../image.png">, puis lui rajoute une ombre (mon filtre "shadow")

Tout ce que je manipule, c'est donc la donnée xlink:href de ma balise svg:image (via l'attribut image de ma balise xbl dû au xbl:inherits="xlink:href=image")

# Re: Message indésirable....

Envoyé par : Paul Rouget

Date : 06/08/2008 18:06

Et l'attribut image de ton xbl, tu le modifies dynamiquement ou tu crées ton élément XBL dynamiquement ?

# Re: Message indésirable....

Envoyé par : cokinou

Date : 07/08/2008 08:58

Paul Rouget a écrit:

Et l'attribut image de ton xbl, tu le modifies
dynamiquement ou tu crées ton élément XBL
dynamiquement ?

Les deux :-)

Mes éléments sont créé dynamiquement et ensuite mon attribut image est modifié, dans certains cas, dynamiquement.... Le message apparait à la création, mais aucun autre message n'apparait ensuite lorsque modifie l'attribut

# Re: Message indésirable....

Envoyé par : Paul Rouget

Date : 07/08/2008 10:53

Et à la création, quelle est la valeur de l'attribut ?

# Re: Message indésirable....

Envoyé par : cokinou

Date : 07/08/2008 11:17

Paul Rouget a écrit:

Et à la création, quelle est la valeur de
l'attribut ?

A la création mon attribut à pour valeur :

file://.....monapp/image.png

Mais je viens de trouver une astuce, créer une resource (dans le .manifest) pointant vers mon répertoire distant (=qui n'est pas dans chrome) Comme ca, au lieu de mettre des file://.....monapp/image.png, j'indique des resource://.....monapp/image.png ..... miracle, plus de message :-)

Bon, j'ai toujours pas compris pourquoi il y avait ce message mais ca contourne le problème comme ca :-)

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.