2010-08-08 4 views
1

J'ai une expérience très limitée avec le développement d'extensions Firefox (lire XUL School, écrit quelques extensions très simples).Y compris l'extension XPCOM inFirefox

J'ai maintenant besoin de fonctionnalités qui ne sont pas disponibles via les objets Firefox XPCOM, à savoir exécuter un processus externe et lire sa sortie standard. Il semble que cela peut être fait en utilisant Protozilla. Donc mes problèmes deviennent maintenant d'inclure cet objet XPCOM externe dans mon XPI afin qu'il soit disponible pour mon extension.

Je devrais préciser que mon problème n'est PAS comment construire un objet XPCOM, puisque j'ai déjà leurs builds et si j'ai besoin de changer quelque chose j'ai déjà leurs makefiles. Mon problème est: qu'est-ce que je fais maintenant? regardez mon arbre extensions comme

/
-> chrome/
-> -> Contenu
-> -> -> browserOverlay.js
-> -> -> ...
-> -> locale
-> -> -> en-US
-> -> -> -> browserOverlay.dtd
- > -> -> -> browserOverlay.properties
-> -> -> ...
-> - > Peau
-> -> -> ... ->
par défaut/
-> -> Préférences/
-> -> -> my_extension.js
- -> modules/
-> -> common.js
-> chrome.manifest
-> install.rdf

Où dois-je inclure les fichiers XPCOM? Ai-je besoin de faire quelque chose pour dire à Firefox qu'un nouvel objet XPCOM est disponible?

+1

Pour cela, je devrais avoir des questions auxquelles on répond ... – Andrea

Répondre

4

De Mozilla centre développeur,

Composants XPCOM

Firefox prend en charge les composants XPCOM dans extensions. Vous pouvez créer vos propres composants facilement en JavaScript ou en C++ (en utilisant le Gecko SDK).

Placez tous vos fichiers .js ou .dll dans le répertoire components/ - ils sont automatiquement enregistré le premier démarrage de Firefox après votre extension est installé.

https://developer.mozilla.org/en/building_an_extension

0

Vous pouvez utiliser nsIProcess pour lancer le processus, ont l'écrire dans un endroit connu, puis lire ce fichier en utilisant nsIFile.

+0

Oui, j'y ai réfléchi. Mais puisque je dois le faire des milliers de fois (ou des dizaines de milliers), je voudrais éviter d'écrire dans un fichier si possible. – Andrea

+0

Eh bien, c'est un peu effrayant. Que faites-vous, plus précisément? –