Forums : Extensions

Aller à la discussion :  Plus récente Plus ancienne

# Erreur création XPI

Envoyé par : Utilisateur anonyme

Date : 13/05/2005 11:30

Bonjour,

cela fait maintenant une semaine que j'essaye de faire fonctionner mon extension mais rien n'y fait, l'erreur "Raison : Script d'instalation non trouvé" est toujours présente.

J'ai lu les tutoriel sur la création d'extension mais rien n'y fait.

J'utilise Firefox 1.0.3 et voici mes fichiers :

formaker
  -> install.rdf
  -> chrome
      -> formaker.jar
           -> content
               -> contents.rdf
               -> formaker.xul
               -> formaker.js

Fichier install.rdf

<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
   <Description about="urn:mozilla:install-manifest">
      <em:creator>Arnaud Garandeau</em:creator>
      <em:description>Gestionnaire de documents</em:description>
      <em:name>formaker</em:name>
      <em:version>0.0.1</em:version>
  <em:id>{2a29a6a7-9cee-a8ac-b612-6b9376f9de41}</em:id>
  <em:file>
	<Description about="urn:mozilla:extension:file:formaker.jar">
			<em:package>formaker/content/</em:package>
	</Description>
  </em:file>
  <em:targetApplication>
	<Description>
  	           <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
	    <em:minVersion>0.9</em:minVersion>
	    <em:maxVersion>1.1</em:maxVersion>
	</Description>
  </em:targetApplication>		
</Description>
</RDF>

Fichier contents.rdf

<?xml version="1.0"?>
<RDF:RDF xmlns:chrome="http://www.mozilla.org/rdf/chrome#"
        xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
 <RDF:Seq about="urn:mozilla:package:root">
   <RDF:li resource="urn:mozilla:package:formaker"/>
 </RDF:Seq>
 <RDF:Description about="urn:mozilla:package:formaker"
	chrome:author="Arnaud Garandeau"
	chrome:description="Gestionnaire de documents"
	chrome:displayName="Formaker 0.0.1"
	chrome:extension="true"
	chrome:name="formaker"/>
 <RDF:Seq about="urn:mozilla:overlays">
   <RDF:li resource="chrome://browser/content/browser.xul"/>
 </RDF:Seq>
 <RDF:Seq about="chrome://browser/content/browser.xul">
   <RDF:li>chrome://formaker/content/formaker.xul</RDF:li>
 </RDF:Seq>
</RDF:RDF>

Je pense que mon problème vient d'une erreur de chemin mais je ne vois pas où.

Je m'en remets donc à vos bons conseils.

Merci d'avance, Arnaud Garandeau.

PS.: Quel logiciel faut-il utiliser pour créer le fichier JAR et XPI. Est-ce que WinZip ou WinRar fonctionne ou faut-il utiliser autre chose.

PS2.: Comment faut pour que mon extension apparaisse dans l'onglet "Outil" de Firefox, pour que mon extension puisse ce lance dans une nouvelle fenêtre de Firefox sans la barre de navigation.

# Re: Erreur création XPI

Envoyé par : laurentj

Date : 13/05/2005 11:59

à priori, je ne vois rien de choquant dans tes fichiers. Je ne vois pas ce qui cloche.

Quel logiciel faut-il utiliser pour créer le fichier JAR et XPI. Est-ce que WinZip ou WinRar fonctionne ou faut-il utiliser autre chose.

winzip ou winrar devrait fonctionner. JAR et XPI ne sont que des fichiers zip classiques.

Comment faut pour que mon extension apparaisse dans l'onglet "Outil" de Firefox, pour que mon extension puisse ce lance dans une nouvelle fenêtre de Firefox sans la barre de navigation.

Faut que tu fasses un overlay (ce que tu as déclaré d'ailleurs...). Pour savoir quoi mettre dans cet overlay, il faut que tu identifie l'element XUL qu'il faut modifier dans le fichier XUL de Firefox. Pour cela, regarde le fichier browser.xul contenu dans chrome/browser.jar.

# Re: Erreur création XPI

Envoyé par : Utilisateur anonyme

Date : 13/05/2005 14:03

winzip ou winrar devrait fonctionner. JAR et XPI ne sont que des fichiers zip classiques.

La est mon problème également. En fait quand j'utilise WinRar pour créer les fichiers JAR et XPI, l'erreur est la suivante : "Raison : Package à installer non valide". Lorsque j'utilise PKZIP, l'erreur est "Raison : Script d'installation non trouvé".

Or j'utilise les mêmes fichiers ?!?

A titre informatif voici mon fichier XUL : formaker.xul

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<window
   id="sample_win"
   onload="init()"
   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://formaker/content/formaker.js"/>
<groupbox flex="1">
<caption label="Liste des CVs"/>
  <tree id="tree" flex="1" flags="dont-build-content" ref="urn:data:row" datasources="rdf:null" hidecolumnpicker="true" seltype="single">
    <treecols>
     <treecol id="name" label="Nom" flex="1"
       class="sortDirectionIndicator" sortActive="true"
       sortDirection="ascending"
       sort="rdf:http://dummy/rdf#Nom"/>
    </treecols>
    <template>
      <treechildren>
        <treeitem uri="rdf:*">
          <treerow>
            <treecell label="rdf:http://dummy/rdf#Nom"/>
          </treerow>
        </treeitem>
      </treechildren>
    </template>
  </tree>
   <hbox>
       <label control="nom" value="Nom à rajouter" />
       <textbox id="nom" />
       <button label="ajouter" oncommand="ajouter()" />
       <button label="Refresh" oncommand="reloadTree('tree')" />
       <button label="Afficher" oncommand="ouvrirFormulaire('tree')"/>
   </hbox>
</groupbox>
</window>

Et mon fichier javascript associé : formaker.js

init(); /* Ã  chaque chargement de l'extension (du navigateur) */
 function init(){
   loadTree('tree', 'http://localhost/test/Framework/create_rdf.php');
 }
 function loadTree(treeId, dsUrl){
     var tree = document.getElementById(treeId);
     tree.setAttribute('datasources', dsUrl);
 }
function reloadTree(treeId){
     var tree = document.getElementById(treeId);
     //var dsUrl=tree.getAttribute('datasources');
     var update=Math.random();
var  dsUrl="http://localhost/test/Framework/create_rdf.php?update="+update;
     //tree.setAttribute('datasources', '');
     tree.setAttribute('datasources', dsUrl);
 }
function ajouter(){
   var val=document.getElementById("nom").value;
   var p = new XMLHttpRequest();
   p.onload = null;
   p.open("POST","http://localhost/test/Framework/bdd.php", false);
   var s = escape("nom")+"="+escape(val);
   p.setRequestHeader("Content-type","application/x-www-form-urlencoded");
   p.send(s);
   // since this is sync request, we get results after send()
   var status = p.status;
   if ( status != "200" ) {
     alert("arg!");
   } else {
     //alert(p.responseText);
     reloadTree('tree');
   }
}
function ouvrirFormulaire(treeId){
     var tree = document.getElementById(treeId);
var name = tree.view.getCellText(tree.currentIndex,"name"); window.open("http://localhost/xslt2xforms/xsl.php?file="+name+".xml");
}

A titre informatif mon fichier .xul et .js fonctionne très bien car je les ai testé avec firefox mais je voudrais en faire une extension.

Merci d'avance pour vos conseil, Arnaud.

# Re: Erreur création XPI

Envoyé par : LeNewbie

Date : 17/05/2005 11:15

Je ne sais pas si cela ne vient que de la, mais tu déclares ton fichier formaker.xul en tant qu'overlay alors qu'a l'intérieur de ce meme fichier tu utilises l'objet window au lieu d'overlay!

Regarde ceci http://xulfr.org/xulplanet/xultu/crosspov.html

# Re: Erreur création XPI

Envoyé par : laurentj

Date : 17/05/2005 11:56

Effectivement, il y a là une erreur. Si formaker.xul est ta fenètre principale, tu ne dois pas la déclarer en tant qu'overlay dans ton contents.rdf !

Donc, tu dois virer ça :

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

# Re: Erreur création XPI

Envoyé par : Utilisateur anonyme

Date : 18/05/2005 09:49

Tout d'abord merci aux personnes qui m'ont apportés leurs conseils.

Je ne sais pas d'où provennait exactement mon erreur mais je pense que c'était une erreur de chemin. Pb de correspondance entre mon répertoire et le chemin spécifié dans le fichier install.rdf :

Arborescence exact des fichiers :

formaker
 -> install.rdf
 -> chrome
     -> formaker.jar
          -> content
              -> formaker
                  -> contents.rdf
                  -> formaker.xul
                  -> formaker.js

Fichier install.rdf

<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
   <Description about="urn:mozilla:install-manifest">
       <em:id>{DB8BED1A-C9F7-4ECA-8F97-D1BFF8888CA8}</em:id>
       <em:name>Formaker</em:name>
       <em:version>0.1</em:version>
       <em:description>Gestionnaire de documents.</em:description>
       <em:creator>Arnaud Garandeau</em:creator>
       <em:homepageURL>http://www.aql.fr</em:homepageURL>
       <em:aboutURL>chrome://formaker/content/about.xul</em:aboutURL>
       <em:file>
           <Description about="urn:mozilla:extension:file:formaker.jar">
               <em:package>content/formaker/</em:package>
           </Description>
       </em:file>
       <em:targetApplication>
           <Description>
               <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
               <em:minVersion>0.7</em:minVersion>
               <em:maxVersion>1.2</em:maxVersion>
           </Description>
       </em:targetApplication>
   </Description>
</RDF>

Le chemin spécifié dans le premier post dans la balise <em:package> n'était pas correct (je pense).

J'ai réussi à créer mon extension à l'aide d'un tutorial que je trouve très bien et qui répondait à mes besoins (insérer l'extension dans le menu Outils de Firefox) :

http://roachfiend.com/archives/2004/12/08/how-to-create-firefox-extensions/

Voila, j'espère que ça pourra également aider d'autres personnes et remercie encore les personnes qui m'ont aidé.

# Re: Erreur création XPI

Envoyé par : Utilisateur anonyme

Date : 08/06/2005 19:24

Arnaud Garandeai a écrit:

Bonjour,

Bonjour !
Je sais, il est un peu tard pour réagir. Cependant, étant actulellement en train d'essayer de créer une extension, j'ai découvert que beaucoup de choses avaient changé dans la façon de faire depuis firefox 1.0.

cela fait maintenant une semaine que j'essaye de faire fonctionner mon extension mais rien n'y fait, l'erreur "Raison : Script d'instalation non trouvé" est toujours présente.

Le message semble indiquer que firefox attend le fichier install.js habituellement utilisé dans les versions antérieures à la 1.0. Ce fichier install.js était alors nécessaire et devait se trouver dans l'archive .xpi à sa racine (au même endroit que install.rdf).

formaker
 -> chrome.manifest
 -> install.rdf
 -> chrome
     -> formaker.jar
          -> content
              -> contents.rdf
              -> formaker.xul
              -> formaker.js

Mais avec les nouvelles versions de firefox, cette façon de faire est obsolète. A la place, il faut un fichier chrome.manifest dont le contenu déclare les différentes parties de l'extension à installer.

Ceci est expliqué sur le site de Mozilla (en anglais)

Pour ma part, je pense que ton problème venait de l'absence de fichier install.js ou bien de fichier chrome.manifest...

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.