Включая расширение XPCOM inFirefox - PullRequest
1 голос
/ 08 августа 2010

У меня очень ограниченный опыт разработки расширений для Firefox (читай XUL School , написал пару очень простых расширений).

Теперь мне нужны некоторые функции, которые недоступны через FirefoxОбъекты XPCOM, а именно запуск внешнего процесса и чтение его стандартного вывода.Похоже, что это можно сделать с помощью Protozilla .Поэтому теперь у меня возникают проблемы с включением этого внешнего объекта XPCOM в мой XPI, чтобы он был доступен для моего расширения.

Я должен пояснить, что моя проблема НЕ в том, как создать объект XPCOM, поскольку у меня уже естьих сборки, и если мне нужно что-то изменить, у меня уже есть свои make-файлы.Моя проблема: что мне теперь делать?Мое дерево расширений выглядит как

/
-> chrome /
-> -> content
-> -> -> browserOverlay.js
-> -> -> ...
-> -> языковой стандарт
-> -> -> en-US
-> -> ->-> browserOverlay.dtd
-> -> -> -> browserOverlay.properties
-> -> -> ...
-> -> skin
-> -> -> ...
-> значения по умолчанию /
-> -> настройки /
-> -> -> my_extension.js
-> modules /
-> -> common.js
-> chrome.manifest
-> install.rdf

Где я должен включитьФайлы XPCOM?Нужно ли что-то делать, чтобы сообщить Firefox, что доступен новый объект XPCOM?

Ответы [ 3 ]

4 голосов
/ 08 августа 2010

Из центра разработчиков Mozilla,

Компоненты XPCOM

Firefox поддерживает компоненты XPCOM в расширения. Вы можете создать свой собственный компоненты легко в JavaScript или в C ++ (с использованием Gecko SDK).

Поместите все ваши файлы .js или .dll в каталог components/ - они автоматически регистрируется первый время Firefox запускается после вашего расширения установлен.

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

0 голосов
/ 31 мая 2011

Protozilla получил следующее: http://mozilla -enigmail.org / ipc / вы можете найти там исполняемые файлы с поддержкой xulrunner, которые должны позволять вам вызывать внешние процессы.

Код был включен в кодовую базу Mozilla (через 10 лет см. https://bugzilla.mozilla.org/show_bug.cgi?id=68702 и http://hg.mozilla.org/ipccode/),, но, насколько я могу судить, он недоступен в Firefox 4).1010 *

0 голосов
/ 08 августа 2010

Вы можете использовать nsIProcess , чтобы запустить процесс, записать его в известное место и затем прочитать из этого файла, используя nsIFile .

...