Загрузочное расширение с новым jpm Firefox
Я реализую расширение Firefox, используя одну из последних (или последних) версий jpm (1.0.5), но расширение не вызывает методы startup () или shutdown (). Я знаю, что должно быть обязательно объявить расширение как
<em:bootstrap>true</em:bootstrap>
в файл install.rdf, но когда я создал свое пространство имен (используя jpm init), этого файла не было, и он был заменен из package.json. В этом случае, как я должен изменить файлы, чтобы использовать методы запуска и завершения работы?
2 ответа
В моем main.js я слушаю загрузки и выгрузки, как это.
exports.main = function(options, callbacks) {
if (options.loadReason == "install" || options.loadReason == "startup") {
factory = new Factory(AboutDualView);
factory = new Factory(AboutEPFViewer);
registerRemotePages();
}
}
exports.onUnload = function (reason) {
if (reason == "shutdown") {
factory.unregister();
RemotePageManager.removeRemotePageListener("about:dualview");
RemotePageManager.removeRemotePageListener("about:epfviewer");
}
};
function registerRemotePages(){
let DualViewmanager = new RemotePages("about:dualview");
let EPFViewmanager = new RemotePages("about:epfviewer");
}
Ссылка https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/SDK/Tutorials/Listening_for_load_and_unload
Какой тип дополнения у вас есть?
Походит на дополнение XUL/Overlay, используя устаревший API. Если это так, то вы должны создать свой собственный bootstrap.js
файл. Вы прошли все шаги, чтобы преобразовать расширение наложения в перезапуск?
jpm init
создаст загрузочный код только при использовании Addons-SDK. Я не уверен в какой-либо пользе от использования jpm, если вы не создаете надстройку с помощью нового API Addons-SDK, за исключением, возможно, возможности упаковать и отправить надстройку в AMO из командной строки. Похоже, что отладка / проверка правильности jpm не улавливает многих проблем, почти никаких в надстройках на основе XUL/Overlay API.
Возможно, вы уже смотрели здесь? Загрузочные расширения, которые ссылаются на документированный скелет bootstrap.js.
Обратите внимание, что в chrome.manifestoverlay
инструкция не поддерживается в загружаемых расширениях.
Эти и другие темы также рассматриваются в документе "convert", указанном выше.