Каков самый простой способ разработки расширения 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 и инструмент для их разработки, тестирования и упаковки.