Каковы преимущества / недостатки использования дополнения SDK для разработки моего расширения Firefox? - PullRequest
23 голосов
/ 19 апреля 2011

Я разрабатываю (еще одну) надстройку менеджера паролей для Firefox. Моему дополнению нужно:

  • Добавьте два элемента контекстного меню в каждое поле пароля.
  • Открыть диалоговое окно или плавающую панель, когда выбран элемент меню.
  • Доступ к определенному методу определенного компонента XPCOM.
  • Заполните поле пароля.
  • Включить окно настроек.
  • Быть совместимым с Firefox 4.0.

Предпочтительно также:

  • Запустите на Firefox 3.5 и 3.6.
    • Некоторые пользователи не обновляются до последней версии.
    • Firefox 4.0 не будет работать на PowerPC Mac.
  • Установка без перезапуска на Firefox 4.0.
  • Разрешить локализацию.

Я попробовал Add-on SDK (ранее известный как Jetpack), и он очень облегчает начало разработки. Тем не менее, я считаю, что HTML не может легко создавать «выглядящие» диалоговые окна и что SDK довольно тяжелый. (Для создания простого расширения требуется много килобайт; это включает в себя компонент XPCOM!)

Каковы преимущества и недостатки использования дополнения SDK для разработки моего расширения Firefox? Готова ли она к "серьезному" расширению разработки?

1 Ответ

22 голосов
/ 19 апреля 2011

Преимущества:

  1. Jetpack API предоставляет API высокого уровня для большинства из упомянутых вами вещей:

    • Добавить два контекстных менюitems
    • плавающая панель
    • API для менеджера паролей
  2. Дополнения на базе Jetpack не требуют перезапуска.

  3. Надстройки на основе Jetpack являются будущим доказательством в том смысле, что API высокого уровня останутся неизменными для следующих версий FF.

  4. Возможно, вы сможете использовать некоторые модули, разработанные сообществом для API, которые не предоставляются SDK.

  5. Если это не последнее расширение, которое вы планируете создать, существует вероятность повторного использования кодапутем создания сторонних модулей, как указано в 4 (подробности см. в документах)

  6. Поддержка мобильной FF появится в версии 1.0 Addon-SDK, что может означать, что ваше расширение можетбыть совместимым с мобильной версией FF с минимальным или нулевым усилием.

  7. Jetpack поставляется со встроенной структурой модульного тестирования.

  8. Имеет лучшую модель безопасности, которая упростит процесс проверки дополнений.

  9. Jetpack поддерживает модули / пакеты commonjs, что означает, что часть кода может быть заимствована из других проектов, таких как, например, nodejs.

Недостатки:

  1. Jetpack больше не поддерживает FF <4. </li>
  2. Пока не поддерживает локализацию.
  3. Не имеет API для построения панелей настроек, но может быть разработанкак сторонний модуль и предоставляется другим сообществом.
  4. Надстройка будет содержать код со слоями абстракций, который увеличит размер надстройки (продолжается работа по уменьшению размера xpi путем исключения файлов).которые не используются дополнением).
...