На MDN введена фраза «Приложение XUL с поддержкой Add-on Manager».
Перетаскивая файл XPI, содержащий надстройку, и помещая его в окно FireFox, виджеты надстройки будут установлены в панели надстроек FireFox.
Я также могу использовать Firefox для запуска приложения XUL, указав параметр командной строки «-app application.ini».
Поскольку MDN заставляет меня думать, что они не являются взаимоисключающими, я ищу простой четырехэтапный процесс, в котором на шагах 1 и 2 независимо друг от друга создаются приложение XUL и XPI, на шаге 3 описывается, как изменить приложение XUL. или XPI при подготовке к шагу 4, и шаг 4 является окончательной интеграцией.
Я начну с шагов 1 и 2, а затем предложу некоторые вещи, которые необходимо выполнить в шагах 3 или 4.
Шаг 1. Создайте XPI, следуя инструкциям по https://addons.mozilla.org/en-US/developers/docs/sdk/1.3/dev-guide/addon-development/implementing-simple-addon.html
Шаг 2. Создайте приложение XUL, следуя инструкциям по https://developer.mozilla.org/en/Getting_started_with_XULRunner
Теперь для шагов 3 и 4. Они должны включать изменение файла application.ini, встроенного в шаг 2, путем добавления кода:
[XRE]
EnableExtensionManager=1
Они также должны включать добавление строк в prefs.js для поддержки менеджера расширений. И они могут потребовать добавления элемента окна аддона в XUL , добавив код, подобный следующему:
<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton
id="xfox-statusbarpanel" class="toolbarbutton-1 chromeclass-toolbar-additional"
label="&name;"
tooltiptext="&name;"
oncommand="toggleSidebar('xfox-sidebar');"
context="xfox-contextmenu">
</toolbarbutton>
</toolbarpalette>
Мне удалось заставить "XUL-приложение с поддержкой диспетчера надстроек" (он же <TestApp
>) принять XPI (он же <wikipanel
>) и попытаться установить его, но это не помогло с сообщением об ошибке. : "<wikipanel
> не удалось установить, поскольку он не совместим с <TestApp version 1.0
>"
[править] Я отредактировал INSTALL.RDF (для моего XPI) и добавил следующее:
<em:targetApplication>
<Description>
<em:id>testapp@sample.xul</em:id>
<em:minVersion>0.0</em:minVersion>
<em:maxVersion>9.*</em:maxVersion>
</Description>
</em:targetApplication>.
Расширение теперь установлено, но я получаю следующую ошибку в jsconsole:
Ошибка: модуль виджета в настоящее время поддерживает только Firefox. В будущем он будет поддерживать другие приложения. Пожалуйста, смотрите https://bugzilla.mozilla.org/show_bug.cgi?id=560716 для получения дополнительной информации.