MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Перенос старых дополнений

Если вы разработали дополнение для Firefox, используя технологии XUL/XPCOM или Add-on SDK, то эта страница поможет вам в миграции дополнения в формат WebExtensions. WebExtensions сейчас является стандартом разработки дополнений в Firefox. Это будет единственный тип дополнений, поддерживаемых Firefox, начиная с конца 2017 года с релиза Firefox 57.

Quick start

  1. Для начала нужно понять общее представление основных моментов в переработке дополнения:
  2. Перепишите код дополнения. Ниже приведёны варианты миграции различных типов дополнений. Начиная с Firefox 51 и далее, вы можете встроить WebExtensions в загружаемое (bootstrapped) дополнение или дополнение на SDK add-on, и таким образом частично портировать старое дополнение в течении некоторого времени и иметь рабочее дополнение на каждом шаге миграции. Сморите Embedded WebExtensions.
  3. Когда вы будете готовы представить WebExtension-версию дополнения на AMO... подождите минуту... Вы действительно готовы? Из-за модели разрешений вы не сможете вернуться от WebExtensions обратно к старому формату дополнения. Тщательно протестируйте, потому что это необратимый однонаправленный путь. Также посмотрите гибридный пример, приведёный ниже. Если вы ещё не готовы, то можете встроить WebExtension-дополнение внутрь контейнера старого формата, который позволит протестировать миграцию на WebExtension, а также вернуться в случае необходимости.
  4. Когда вы действительно готовы представить и загрузить WebExtension-версию дополнения в AMO, то сначала портируйте свой старый ID дополнения в новый файл манифеста manifest.json WebExtension-дополнения. Ваше дополнение должно иметь тот же ID как и предыдущая версия. Скопируйте значение поля "id" из файла package.json в поле "id" секции applications файла manifest.json WebExtension-дополнения. Затем вы можете залить дополнение на сервер AMO как делали обычно.

Учтите, что это однонаправленная конвертация: Вы не сможете обновить WebExtension-дополнение на старую технологию. Это значит, что вы должны быть полностью уверены, что готовы влиться в WebExtensions до того как обновите дополнение в AMO.

Способы миграции


SDK Add-ons

Диаграмма сравнения, показывающая SDK API и его аналоги из WebExtensions. Если вы не видите API, которые вам нужно портировать в WebExtensions, то посмотрите ниже для изучения возможности запросить API, а также, как их реализовать.

XUL/XPCOM Add-ons

Диаграмма сравнения, показывающая XUL/XPCOM API и его аналоги из WebExtensions. Если вы не видите API, которые вам нужно портировать в WebExtensions, то посмотрите ниже для изучения возможности запросить API, а также, как их реализовать.

Частичная миграция

Встроенное WebExtensions - Сейчас вы можете встроить WebExtensions-дополнение внутрь существующего SDK-дополнения или загружаемoго дополнения. Этот вопрос особенно актуален для разработчиков SDK или загружаемых дополнений, кто хочет мигрировать на WebExtensions и получить все преимущества нового API, например, такого как Native Messaging, но пока ещё полностью не мигрировал. Это также полезно тем разработчикам, кто хочет провести полную миграцию данных на WebExtensions, и кто хочет переработать части своего дополнения несовместимые с мультипроцессным Firefox и сделать их совместимыми.

Не все дополнения будут мигрированы на WebExtensions без каких-либо потерь возможностей функционала. Но мы хотим работать с вами так, чтобы как можно больше дополнений было мигрировано, и как можно больше функций осталось нетронутыми. Мы приглашаем вас внести свой вклад в развитие этого проекта и желаем работать с вами в дальнейшем.

Не увидели нужного в WebExtensions API?

Разработка WebExtension APIs для Firefox - Если вы знакомы с инфраструктурой Mozilla и хотели бы развивать WebExtensions API непосредственно для Firefox, вот список одобренных API, в которые вы можете внести вклад.

Поэкспериментируйте с новыми WebExtension API - Если вы хотите поэкспериментировать и повозиться с функциями WebExtensions API без необходимости без создания новых функций в Firefox, то для вас есть раздел WebExtensions Experiments!

Запрос новой фунции в WebExtensions API - Если вы хотите попросить создать новую функцию в WebExtensions API, пожалуйста заполните запрос через багтрекер. Эти запросы проверяются и обрабатываются дважды в неделю на открытом совещании.

Инструменты

  • web-ext утилита командной строки, созданая для ускорения процесса разработки WebExtension, делающая разработку быстрее и проще.
  • Lookup tool для определения типа вашего дополнения и описания рекомендуемых ресурсов для миграции
  • WebExtensions Helper ускоряет разработку браузерных дополнений посредством предоставления утилит для дополнений, основанных на WebExtensions (Firefox, Chrome, Opera and Edge).
  • Chrome Extension generator создаёт всё необходимое для разработки дополнений. Вы можете выбрать тип элемента Browser UI(Browser, Page Action, Omnibox) и выбрать необходимые разрешения.
  • Extensionizr это помощник в создании основы дополнения.
  • Chrome Boilerplate шаблоны исходного кода для Chrome WebExtension.
  • Skeleton Chrome Extension расширение, предоставляющее шаблон для быстрого старта разработки дополнения

Документация

Метки документа и участники

 Внесли вклад в эту страницу: pk.prog
 Обновлялась последний раз: pk.prog,