Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Accéder à un fichier d'une extension ? Faire une extension d'extension ?

Envoyé par : Raphael

Date : 30/05/2008 21:37

Bonjour, je voudrais utiliser le gestionnaire de modules de XR 1.9 que j'arrive enfin à faire fonctionner pour mon logiciel. Cependant, je n'ai pas l'habitude de faire des extensions, car je bosse avec XULRunner seulement d'habitude.

J'ai donc 2 petites interrogations :

  • Actuellement, mon application se sert d'une BDD SQLite3 dont je gère moi-même la MAJ via internet : AJAX pour vérifier la MAJ > Téléchargement du ZIP de MAJ > Dézippage de la MAJ.

J'aimerais transformer cette BDD zippé en extension pour FF/XR, afin de laisser la gestion des MAJ au gestionnaire de Modules de XulRunner et non plus à mon propre "gestionnaire de MAJ".

Est-ce possible ? Si oui, comment accéder à ma BDD depuis mon logiciel ? Quelle adresse, adresse chrome ou autres faut-il utiliser ?

  • Afin de pouvoir mettre mon appli. à jour, j'aimerais la packager entièrement dans une extension .xpi genre "monlogiciel-core.xpi" et distribuer mon logiciel avec uniquement la fenêtre principale, quasiment vide... Mon idée étant que tous les éléments ainsi que les iframes arriveraient en Overlay sur ma fenêtre principale quasi-vide donc... Est-ce faisable ? Est-ce qu'il y aura des pertes de performances ?
  • S'il se trouve que mon point précédent est réalisable... Est-ce possible de rajouter des extensions par la suite du type "monlogiciel-extraplusgins.xpi" ?

Je me pose la question, car je crois qu'un Overlay se place par rapport à des éléments de ma fenêtre principale non ? Pour savoir où placer les éléments... Seulement, dans mon cas, la fenêtre serait quasi-vide puisque le coeur de l'appli. serait en fait une extension...

Serait-ce donc possible de positionner une extension (les overlays quoi) en fonction d'éléments d'une autre extension ?

Et dans ce cas donc, ça voudrait dire qu'on peut faire des extensions d'extensions... D'où ma question : Les extensions peuvent-elles avoir des dépendances ? Genre, ok si tu veux installer celle-là, tu dois installer celle-là d'abord...

Je vous serais très reconnaissant de m'éclairer un peu sur tout çà.

Merci d'avance.

PS : Existe-t-il ou va-t-il exister une version de XULRunner en Français ? Car du coup, j'ai mon gestionnaire de modules de XR 1.9 en US... Ou bien existe-t-il une astuce ? genre prendre le fr-FR.jar de Firefox 3 et l'utiliser pour XR 1.9 ?

EDIT : RESOLU :

  • Problème d'accès à un fichier d'une extension : Avec ce code, j'arrive à accéder à mon fichier inclus dans une extension :
var MY_ID = "ycd@ylife.org";
var em = Components.classes["@mozilla.org/extensions/manager;1"].getService(Components.interfaces.nsIExtensionManager);
// the path may use forward slash ("/") as the delimiter
var file = em.getInstallLocation(MY_ID).getItemFile(MY_ID, "chrome/content/database.ycd");
  • Problème d'extension d'extension : Aucun problème, on peut définir un Overlay sur un élément qui se trouve dans une autre extension ! On peut également appeler une fonction JS d'une extension à partir d'une autre extension. C'est donc impeccable, je vais peut-être pouvoir transformer mon application de manière totalement modulaire.

# Re: Accéder à un fichier d'une extension ? Faire une extension d'extension ?

Envoyé par : thefab

Date : 31/05/2008 13:13

Est-ce possible ? Si oui, comment accéder à ma BDD depuis mon logiciel ? Quelle adresse, adresse chrome ou autres faut-il utiliser ?

Je suppose que oui. Essaye déjà simplement: chrome://app/content/ qui appelle chrome://app-ext/content/

Les extensions peuvent-elles avoir des dépendances ?

Oui, http://developer.mozilla.org/fr/docs/ins(..)

# Re: Accéder à un fichier d'une extension ? Faire une extension d'extension ?

Envoyé par : Raphael

Date : 31/05/2008 22:26

Si j'ai bien compris l'enregistrement chrome que je ne maitrise pas trop...

Il faudrait que le manifest de mon extension qui contient la BDD soit déclarée comme ça :

content  monextension   chrome/monextension/content/

Et que dans mon logiciel, j'appelle non pas :

chrome://monapplication/content/bdd.sql

mais

chrome://monextension/content/bdd.sql

En supposant que cette extension a bien été installée... ? Et si mon extension n'est pas installée... erreur ? D'où l'intérêt de mettre une dépendance ? Mais d'après ce que j'ai lu, les dépendances permettent surtout de ne pas installer quelque chose qui ne va pas fonctionner, mais est-ce que ça va installer les dépendances ?

Genre, si je fais 2 extensions qui sont dépendantes l'une de l'autre... Si je veux installer l'une, et qu'il veut pas car il manque l'autre, et inversement, je vais pas aller bien loin ^^"

EDIT : En fait, je viens de regarder mon code de plus près, je n'accède pas à ma BDD via une URL chrome, mais manuellement, car je stocke ma BDD dans le Profil utilisateur. Du coup, je créé un nsILocalFile en partant de "ProfD" jusqu'à ma BDD.

Mais là, ma BDD sera dans une extension... Du coup, je fais comment pour l'appeler ? Faut passer par l'URL chrome ? Dans ce cas peut-on transformer une URL chrome en nsILocalFile ou autres pour lui montrer le chemin ?

# Re: Accéder à un fichier d'une extension ? Faire une extension d'extension ?

Envoyé par : thefab

Date : 01/06/2008 15:36

mais est-ce que ça va installer les dépendances ?

Je ne pense pas, ça va simplement refuser l'installation mais j'en sais pas plus

Genre, si je fais 2 extensions qui sont dépendantes l'une de l'autre...

Je ne pense pas que les dépendances croisées soient gérées.

Dans ce cas peut-on transformer une URL chrome en nsILocalFile ou autres pour lui montrer le chemin ?

Oui voir http://xulfr.org/wiki/RessourcesLibs/Lis(..) convertChromeURL()

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.