Дополнения
Дополнения добавляют новые функциональные возможности в Gecko-приложения, такие, как Firefox, SeaMonkey и Thunderbird. Есть два основных типа дополнений: расширения, которые добавляют новые функции в приложение, и темы, изменяющие пользовательский интерфейс приложения.
Для расширений и тем в Mozilla работает хранилище на addons.mozilla.org, также известное как AMO. Когда вы помещаете дополнения на AMO, они рассматриваются, и после этого становятся доступны для пользователей. Вы не обязаны загружать свои дополнения в AMO, но если вы это сделаете, пользователи могут быть уверены в том, что они были предварительно проверены и будут знать, что ваше дополнение действительно полезно.
Дополнение может существенно повлиять на поведение приложения, на которое оно устанавливается. Мы разработали список советов, которые помогут вам удостовериться, что ваше дополнение будет приятным в использовании. Эти правила применяются для всех видов надстроек, независимо от того, размещены они на addons.mozilla.org или нет.
Расширения
Расширения добавляют новые функции к приложениям Mozilla, например таким как Firefox и Thunderbird. С их помощью можно изменить стандартное поведение браузера, например реализовать другой способ организации и управления вкладками. Можно даже изменять содержимое отображаемого веб приложения, чтобы улучшить удобство использования или например повысить безопасность определённых сайтов.
Существует 3 различных способа сборки расширений: restartless-расширения на основе Add-on SDK, restartless-расширения с реализацией этого механизма вручную (manually bootstrapped restartless extensions), и расширения с использованием технологии Overlay.
- Restartless-расширения на основе Add-on SDK Разработка restartless расширений с помощью высокоуровневого JavaScript API.
- Restartless-расширения с реализацией этого механизма вручную Разработка расширений с самостоятельной реализацией механизма restartless.
- Расширения с использованием технологии Overlay Extensions Устаревшей способ разработки расширений, при котором требуется перезапуск браузера. Основан на механизме наложения XUL.
Примечание: Технология WebExtensions
В данный момент мы разрабатываем систему под названием WebExtensions, которая будет новым способом разработки расширений для браузера Firefox, эта система будет гораздо более совместима с браузерами Chrome и Opera.
В будущем она станет наиболее предпочтительной при разработке новых проектов для браузера Firefox.
В данный момент она является экспериментальной, но несмотря на это вы можете ознакомиться с документацией, если хотите её опробовать.
Где это возможно, рекомендуется выбирать Add-On SDK, который использует механизм расширения без необходимости перезапуска браузера (restartless extensions), а также упрощает разработку и убирает за собой. Если вам недостаточно возможностей комплекта средств разработки Add-on SDK для реализации ваших идей, механизм restartless вы можете осуществить самостоятельно. Технология Overlay extensions в целом устарела и не рекомендуется при разработке новых расширений.
Для получения дополнительной информации о том, какой способ использовать, прочтите это сравнение.
Рекомендуемые практики
Вне зависимости от того, каким способом вы разрабатываете расширение, имеются общие рекомендации, следуя которым вы гарантируете пользователю максимально приятную работу с вашим расширением.
- Производительность
-
Убедитесь в том, что ваше расширение обладает хорошей производительностью. Оно должно быть достаточно быстрым, иметь отзывчивый интерфейс и потреблять минимальный объем памяти.
- Безопасность
-
Убедитесь в том, что ваше приложение не подвергает пользователя опасности на вредоносных веб сайтах.
- Этикет
-
Убедитесь в том, что ваше расширение не конфликтует с другими расширениями.
Специфика разработки для различных приложений
Большая часть документации предполагает, что вы разрабатываете для десктопной версии Firefox. Если вы разрабатываете для других основанных на движке Gecko приложений, то существуют некоторые отличия, о которых вам следует знать.
- Thunderbird
-
Разработка расширений для почтового клиента Thunderbird.
- Firefox для Андроид
-
Разработка расширений для Firefox под Андроид.
- SeaMonkey
-
Разработка расширений для SeaMonkey.
Темы
Темы это дополнения, которые изменяют внешний вид пользовательского интерфейса. Существуют два вида тем: легковесные темы и полные темы.
Легковесные темы значительно легче создать, чем полные, но их возможности ограничены.
С помощью полных тем вы можете гораздо глубже менять UI приложения. Документация к полным темам устарела, но приведена здесь в качестве возможной основы для обновлённой документации.
Другие типы дополнений
Поисковые плагины являются простыми и очень специфическими типами дополнений: они добавляют новые поисковые системы для поиска в строке браузера.
Плагины (не путать с расширением и дополнением) помогают приложению понять содержание, которое не имеет встроенной поддержки. NPAPI-плагины являются устаревшей технологией и новые сайты не будут её использовать. Как правило, такие плагины не доступны для использования на большинстве современных мобильных систем, и веб-сайты должны избегать их использования
Смотрите также
-
-
- NPN_DestroyStream
- NPN_ForceRedraw
- NPN_GetAuthenticationInfo
- NPN_GetURL
- NPN_GetURLNotify
- NPN_GetValue
- NPN_GetValueForURL
- NPN_InvalidateRect
- NPN_InvalidateRegion
- NPN_MemAlloc
- NPN_MemFlush
- NPN_MemFree
- NPN_NewStream
- NPN_PluginThreadAsyncCall
- NPN_PostURL
- NPN_PostURLNotify
- NPN_ReloadPlugins
- NPN_RequestRead
- NPN_SetValue
- NPN_SetValueForURL
- NPN_Status
- NPN_UserAgent
- NPN_Version
- NPN_Write
-
- NPString
- NPVariant
- NPN_ReleaseVariantValue
- NPN_GetStringIdentifier
- NPN_GetStringIdentifiers
- NPN_GetIntIdentifier
- NPN_IdentifierIsString
- NPN_UTF8FromIdentifier
- NPN_IntFromIdentifier
- NPObject
- NPN_CreateObject
- NPN_RetainObject
- NPN_ReleaseObject
- NPN_Invoke
- NPN_InvokeDefault
- NPN_Evaluate
- NPN_GetProperty
- NPN_SetProperty
- NPN_RemoveProperty
- NPN_HasProperty
- NPN_HasMethod
- NPN_SetException
- NPClass