Каков самый простой способ разработки расширения Firefox?
Я планирую разработать простое расширение Firefox, которое сократит URL-адрес активной активной вкладки, отобразит всплывающее окно с сокращенным URL-адресом и поместит его в буфер обмена.
В Google Chrome это будет довольно просто (согласно http://developer.chrome.com/extensions/getstarted.html) - чистый JavaScript плюс несколько вызовов JavaScript API -s взаимодействия с пользовательским интерфейсом браузера.
Однако, после поиска подходящего учебника по расширению Firefox, наиболее официальные ссылки, которые я нашел, следующие:
По их мнению, мне кажется, что мне нужно будет изучить язык XUL даже для самых простых взаимодействий с пользовательским интерфейсом браузера. Кроме того, мне нужно будет настроить пользовательский профиль Firefox, чтобы не вставлять мой профиль по умолчанию во время разработки, создавать сложную структуру каталогов, писать манифест в неясном XML, определять, как упаковывать и тестировать все, что я реализую, и т.д.
В 2013 году, нет ли более простого способа создания расширений Firefox?
Ответы
Ответ 1
В 2013 году, нет ли более простого способа создания расширений Firefox?
Да, есть!
Ссылки, предоставленные вами в вопросе, невероятно устарели. Существует новый, гораздо лучший способ разработки расширений Firefox - Firefox Add-on SDK.
Однако довольно сложно наткнуться на него, просто поиграв в игры по линии "учебника аддонов Firefox". Я удивлен, что Mozilla не рекламирует его более агрессивно или, по крайней мере, упоминает об этом на тех страницах, которые вы нашли.
Шаги для начала (Mac/Linux, но для ПК это должно быть очень похоже):
- Загрузите SDK из https://addons.mozilla.org/en-US/developers/builder, распакуйте его.
- Быстрый просмотр файла README (всегда полезно).
- Выполнить
source bin/activate
из каталога SDK (тот же каталог, в котором находится файл README).
- Execute
cfx docs
- эта загрузка загружает локальную копию SDK docs и открывает ее в вашем браузере.
- Оставьте директорию SDK, создайте пустой каталог для вашего расширения.
- Выполнять
cfx init
внутри densions extensions - это генерирует все необходимые файлы/каталоги.
- Следуйте остальным getting-started-with-cfx страница:
- Обновите
lib/main.js
всего несколькими строками JS, чтобы поместить пользовательский виджет на панель надстройки.
- Execute
cfx run
- это открывает новый экземпляр Firefox с вашим новым блестящим расширением.
В общем, мне потребовалось всего несколько часов, чтобы прочитать документацию, ознакомиться с API-интерфейсом SDK, найти SDK модуль для размещения виджета на панели навигации вместо дополнительной панели и разработки полнофункционального расширения примерно в 50 строках JavaScript.
НТН!
Update
Существует новый стандарт, называемый WebExtensions
Из MDN
В настоящее время существует несколько наборов инструментов для разработки надстроек Firefox, но WebExtensions станет стандартом к концу 2017 года.
Если вы пишете новое дополнение, , мы рекомендуем написать WebExtension.
Ответ 2
Да, есть три разных метода, которые вы можете использовать для создания расширений:
Вы можете прочитать сравнение здесь
Если это возможно, рекомендуется использовать SDK Add-on, который использует без повторения, но упрощает определенные задачи и очищает после себя. Если дополнительного SDK недостаточно для вашего необходимо, вместо этого, использовать вместо этого перезапуск без перезагрузки.
Шаги, чтобы начать работу с дополнительными расширениями на основе SDK
Ответ 3
От https://blog.mozilla.org/addons/2016/11/23/add-ons-in-2017/, единственный способ продвижения вперед - использовать WebExtensions. Последние расширения SDK будут приняты для Firefox 52, а Firefox 57 прекратит все другие расширения поддержки, поддерживая только WebExtensions.
Firefox скопировал API расширения Google Chrome. Таким образом, вы можете просто использовать расширение Chrome и посмотреть, поддерживаются ли все API в Firefox (они должны быть на данный момент).
Программисты, такие как NoScript Giorgio Maone активно поддерживают изменение в WebExtensions.
Чтобы разработать WebExtension, вам нужно
-
либо web-ext
-tool, который можно установить через
npm install --global web-ext
-
или просто используйте Firefox about:debugging
или Chromium chrome:extensions
, чтобы временно загрузить веб-расширение.
В любом случае вам нужен файл manifest.json
в созданном вами каталоге, который объединяет все функции вместе. См. https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Your_first_WebExtension для первого примера. Или документы Google в https://developer.chrome.com/getstarted.
Ответ 4
два официальных пути для разработки надстроек, у каждого из них есть плюсы и минусы:
1- WebExtensions (более новый метод):
WebExtensions - это будущее надстроек Firefox. Если вы можете использовать API WebExtensions, это лучший выбор. Вы можете разрабатывать и публиковать WebExtensions прямо сейчас, но они все еще находятся в раннем состоянии.
2- Дополнительный SDK (более старый метод):
Add-on SDK предоставляет API-интерфейсы для разработки надстроек Firefox и инструмент для их разработки, тестирования и упаковки.
Ответ 5
Я сделал учебное пособие по разработке расширений с помощью SDK Firefox add:
Как разработать расширение Firefox с помощью аддона SDK