Использование add-on SDK для добавления кнопок панели инструментов? Интеграция XUL и Add-on SDK для Firefox дополнений?

Я уже закодировал большую часть дополнения Firefox с помощью API SDK Add-on. Теперь я обнаруживаю, что Add-on SDK может быть недостаточно мощным для моих целей. Мне нужны две вещи:--3-->

  1. кнопка раскрывающегося списка на панели инструментов рядом со строкой местоположения.
  2. чтобы изменить менеджер надстроек в firefox

это действительно разочаровывает, но я не верю, что любой из них возможен с помощью Add-on SDK.

прежде всего, я понимаю есть widget модуль в API SDK надстройки. Но это позволяет мне только добавить простой значок или метку в неудобную панель надстройки. Что делать, если мне нужно добавить более приятную кнопку, например, рядом с панелью местоположения для Firebug или Greasemonkey? Что касается изменения менеджера дополнений в firefox, я пробовал XUL Николая Пономарева с дополнением SDK без какого-либо успеха. Если кто-нибудь знает, как заставить это работать и может указать мне в правильном направлении, это было бы чрезвычайно полезно (cfx init --template xul не делает ничего, что обычный SDK делает, когда я пытаюсь)

3 ответов


вы смотрели на модуль toolbarbutton Эрика Вольда?

https://github.com/erikvold/toolbarbutton-jplib/

можно получить доступ ко всем внутренним API Firefox в модулях SDK, требуя привилегий chrome; это просто не будет так просто, как API высокого уровня addon-kit.


toolbarbuttonlib-jplib, упомянутый выше, больше не существует, но попробуйте toolbarwidget-jplib. Это работает как шарм! Общая спасительница.


попробовал XUL Николая Пономарева с реактивным ранцем без успеха. Если кто-нибудь знает, как заставить это работать и может указать мне в правильном направлении, что было бы очень полезно (cfx init --template xul не делает ничего, что делает обычный sdk, когда я пытаюсь)

Я очень хотел бы услышать подробное описание того, что вы пытались и как именно это не удалось. Я не могу ответить на вопрос в его нынешнем виде.

I не верьте, что это возможно с JetPack.

вы имеете в виду использование только встроенных модулей SDK высокого уровня. Можно написать низкоуровневый модуль SDK, который использует XPCOM и взаимодействует с кодом chrome напрямую для реализации необходимых функций-в конце концов, именно так реализованы остальные модули SDK. Если вы пойдете по этому маршруту, вы потеряете будущее обещание совместимости SDK, хотя -- вам придется либо включить его в восходящий SDK, либо обновить его для себя новых версий Firefox.