Каков самый простой способ разработки расширения Firefox?


Я планирую разработать простое расширение Firefox, которое сократит URL-адрес текущей активной вкладки, отобразит всплывающее окно с укороченным URL-адресом и поместит его в буфер обмена.

в Google Chrome это было бы довольно легко (согласно http://developer.chrome.com/extensions/getstarted.html) -- чистый JavaScript плюс несколько вызовов JavaScript API-s взаимодействия с пользовательским интерфейсом браузера.

однако, после поиска вокруг для хорошего Firefox учебник расширений, наиболее официально выглядящие ссылки, которые я нашел:

по их словам, похоже, что мне придется изучать язык XUL даже для самых простых взаимодействий с пользовательским интерфейсом браузера. Вдобавок ко всему, Мне нужно будет настроить пользовательский профиль Firefox, чтобы не использовать мой профиль по умолчанию во время разработки, создать сложную структуру каталогов, написать манифест в неясном XML, выяснить, как упаковать и протестировать все, что я реализую, и т. д.

Это 2013 год, разве нет более простого способа создания расширений Firefox?

5 58

5 ответов:

это 2013 год, разве нет более простого способа создания расширений Firefox?

Да есть!

ссылки, которые вы предоставили в вопросе, невероятно устарели. Есть новый, гораздо лучший способ разработки расширений Firefox -- Firefox Add-on SDK.

однако довольно трудно наткнуться на него, просто погуглив по строкам "firefox addon tutorial". Я поражен, что Mozilla не рекламирует это более агрессивно, или, по крайней мере, упомянуть об этом на тех страницах, которые вы нашли.

действия (Mac / Linux, но должно быть очень похоже на ПК):

  • загрузите SDK из https://addons.mozilla.org/en-US/developers/builder, распакуйте его.
  • быстро просмотрите файл README (всегда полезно).
  • выполнить source bin/activate из SDK dir (тот же самый dir, в котором находится файл README).
  • выполнить cfx docs -- это загрузочная локальная копия SDK docs и открывает его в браузере.
  • оставьте SDK dir, создайте пустой dir для вашего расширения.
  • выполнить cfx init внутри расширений dir -- это создает все необходимые файлы / каталоги.
  • следуйте за остальными начало работы с cfx страница:
    • обновление lib/main.js С помощью всего нескольких строк JS, чтобы разместить пользовательский виджет на надстройку бар.
    • выполнить cfx run -- это открывает свежий экземпляр Firefox с вашим новым блестящим расширением в нем.

в целом, мне потребовалось всего несколько часов, чтобы прочитать документацию, ознакомиться с SDK API-s, найти SDK модуль чтобы разместить виджет на панели навигации вместо панели надстроек и разработать полнофункциональное расширение всего за 50 строк Яваскрипт.

НТН!

обновление

есть новый стандарт, называется WebExtensions

С MDN

в настоящее время существует несколько наборов инструментов для разработки дополнений Firefox, но WebExtensions станет стандартом к концу 2017 года.

если вы пишете новое дополнение,мы рекомендуем вам написать WebExtension.

Да есть три различных методов, которые можно использовать для создания расширений:

  1. дополнительные расширения на основе SDK
  2. вручную загруженные restartless расширения
  3. оверлея расширения

вы можете прочитать сравнения между здесь

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

шаги чтобы начать с дополнительные расширения на основе SDK

  1. установка
  2. создание пользовательских интерфейсов
  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Джорджио Маоне активно поддерживаю переход на WebExtensions.

чтобы разработать WebExtension, вам нужно

  • или web-extинструмент это можно установить через

    npm install --global web-ext
    
  • или просто используйте Firefox about:debugging или хром chrome:extensions для временной загрузки webextension.

в любом случае, вам нужен manifest.json файл в созданном вами каталоге, который склеивает все функциональные возможности вместе. Смотрите https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Your_first_WebExtension для первого примера. Или Документы Google в https://developer.chrome.com/getstarted.

здесь два официальных способа для разработки дополнений, каждый из них имеет свои плюсы и минусы:

1 - WebExtensions (новый метод):

WebExtensions-это будущее надстроек Firefox. Если вы можете использовать API WebExtensions, это лучший выбор. Вы можете разрабатывать и публиковать веб-расширения прямо сейчас, но они все еще находятся в раннем состоянии.

2-Add-On SDK (старше метод):

add-on SDK предоставляет API для разработки надстроек Firefox и инструмент для их разработки, тестирования и упаковки.

Я сделал учебник по разработке расширений с помощью Firefox addon SDK:

как разработать расширение Firefox с помощью аддона SDK