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

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

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

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

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

Ответы [ 3 ]

3 голосов
/ 06 октября 2011

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

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

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

2 голосов
/ 19 февраля 2014

Toolbarbuttonlib-jplib, на который есть ссылки выше, больше не существует, но попробуйте toolbarwidget-jplib .Отлично работает!Всего спасителя.

1 голос
/ 09 октября 2011

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

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

Я не верю, что что-либо из этого возможно с JetPack.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...