diff --git a/files/ru/mozilla/add-ons/index.html b/files/ru/mozilla/add-ons/index.html deleted file mode 100644 index c4be84f8b823af..00000000000000 --- a/files/ru/mozilla/add-ons/index.html +++ /dev/null @@ -1,240 +0,0 @@ ---- -title: Дополнения -slug: Mozilla/Add-ons -tags: - - NeedsTranslation - - TopicStub - - Дополнения - - Расширения -translation_of: Mozilla/Add-ons ---- -

Дополнения добавляют новые функциональные возможности в 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.

- - - -
-

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

- -

Смотрите также

- -
    -
  1. Restartless extensions
  2. -
  3. Legacy extensions
  4. -
  5. Дополнения на основе SDK
  6. -
  7. Techniques -
      -
    1. Promises
    2. -
    -
  8. -
  9. Рекомендуемая практика -
      -
    1. Производительность
    2. -
    3. Безопасность
    4. -
    5. Этикет
    6. -
    -
  10. -
  11. Темы -
      -
    1. Легковесные темы
    2. -
    3. Легковесные темы FAQ
    4. -
    5. Полные темы
    6. -
    -
  12. -
  13. Legacy Plugins -
      -
    1. Plug-in Basics
    2. -
    3. Plug-in Development Overview
    4. -
    5. Initialization and Destruction
    6. -
    7. Drawing and Event Handling
    8. -
    9. Streams
    10. -
    11. URLs
    12. -
    13. Memory
    14. -
    15. Version, UI, and Status Information
    16. -
    17. Plug-in side Plug-in API -
        -
      1. NPP_Destroy
      2. -
      3. NPP_DestroyStream
      4. -
      5. NPP_GetValue
      6. -
      7. NP_GetValue
      8. -
      9. NPP_HandleEvent
      10. -
      11. NP_Initialize
      12. -
      13. NPP_New
      14. -
      15. NPP_NewStream
      16. -
      17. NPP_Print
      18. -
      19. NPP_SetValue
      20. -
      21. NPP_SetWindow
      22. -
      23. NP_Shutdown
      24. -
      25. NPP_StreamAsFile
      26. -
      27. NPP_URLNotify
      28. -
      29. NPP_Write
      30. -
      31. NPP_WriteReady
      32. -
      -
    18. -
    19. Browser Side Plug-in API -
        -
      1. NPN_DestroyStream
      2. -
      3. NPN_ForceRedraw
      4. -
      5. NPN_GetAuthenticationInfo
      6. -
      7. NPN_GetURL
      8. -
      9. NPN_GetURLNotify
      10. -
      11. NPN_GetValue
      12. -
      13. NPN_GetValueForURL
      14. -
      15. NPN_InvalidateRect
      16. -
      17. NPN_InvalidateRegion
      18. -
      19. NPN_MemAlloc
      20. -
      21. NPN_MemFlush
      22. -
      23. NPN_MemFree
      24. -
      25. NPN_NewStream
      26. -
      27. NPN_PluginThreadAsyncCall
      28. -
      29. NPN_PostURL
      30. -
      31. NPN_PostURLNotify
      32. -
      33. NPN_ReloadPlugins
      34. -
      35. NPN_RequestRead
      36. -
      37. NPN_SetValue
      38. -
      39. NPN_SetValueForURL
      40. -
      41. NPN_Status
      42. -
      43. NPN_UserAgent
      44. -
      45. NPN_Version
      46. -
      47. NPN_Write
      48. -
      -
    20. -
    21. Scripting plugins -
        -
      1. NPString
      2. -
      3. NPVariant
      4. -
      5. NPN_ReleaseVariantValue
      6. -
      7. NPN_GetStringIdentifier
      8. -
      9. NPN_GetStringIdentifiers
      10. -
      11. NPN_GetIntIdentifier
      12. -
      13. NPN_IdentifierIsString
      14. -
      15. NPN_UTF8FromIdentifier
      16. -
      17. NPN_IntFromIdentifier
      18. -
      19. NPObject
      20. -
      21. NPN_CreateObject
      22. -
      23. NPN_RetainObject
      24. -
      25. NPN_ReleaseObject
      26. -
      27. NPN_Invoke
      28. -
      29. NPN_InvokeDefault
      30. -
      31. NPN_Evaluate
      32. -
      33. NPN_GetProperty
      34. -
      35. NPN_SetProperty
      36. -
      37. NPN_RemoveProperty
      38. -
      39. NPN_HasProperty
      40. -
      41. NPN_HasMethod
      42. -
      43. NPN_SetException
      44. -
      45. NPClass
      46. -
      -
    22. -
    23. Structures
    24. -
    25. Constants
    26. -
    27. External Resources
    28. -
    -
  14. -
  15. Publishing add-ons -
      -
    1. Signing and distributing your add-on
    2. -
    3. Submit a new add-on
    4. -
    5. Policies -
        -
      1. Developer Agreement
      2. -
      3. Review Process
      4. -
      5. Add-on guidelines
      6. -
      7. Featured Add-ons
      8. -
      9. Contacting Us
      10. -
      -
    6. -
    -
  16. -
  17. Community and Support -
      -
    1. Add-ons Blog
    2. -
    3. Add-on Forums
    4. -
    5. Stack Overflow
    6. -
    7. Development Newsgroup
    8. -
    9. IRC Channel
    10. -
    -
  18. -
diff --git a/files/ru/mozilla/add-ons/index.md b/files/ru/mozilla/add-ons/index.md new file mode 100644 index 00000000000000..5ee74d223e1335 --- /dev/null +++ b/files/ru/mozilla/add-ons/index.md @@ -0,0 +1,209 @@ +--- +title: Дополнения +slug: Mozilla/Add-ons +tags: + - NeedsTranslation + - TopicStub + - Дополнения + - Расширения +translation_of: Mozilla/Add-ons +--- +Дополнения добавляют новые функциональные возможности в [Gecko](/ru/docs/Mozilla/Gecko)-приложения, такие, как Firefox, SeaMonkey и Thunderbird. Есть два основных типа дополнений: [расширения](#Extensions), которые добавляют новые функции в приложение, и [темы](#Themes), изменяющие пользовательский интерфейс приложения. + +> Для расширений и тем в Mozilla работает хранилище на [addons.mozilla.org](https://addons.mozilla.org/), также известное как AMO. Когда вы [помещаете дополнения на AMO](/en-US/Add-ons/Submitting_an_add-on_to_AMO), они рассматриваются, и после этого становятся доступны для пользователей. Вы не обязаны загружать свои дополнения в AMO, но если вы это сделаете, пользователи могут быть уверены в том, что они были предварительно проверены и будут знать, что ваше дополнение действительно полезно. + +Дополнение может существенно повлиять на поведение приложения, на которое оно устанавливается. Мы разработали [список советов](/ru/docs/Mozilla/Add-ons/Add-on_guidelines), которые помогут вам удостовериться, что ваше дополнение будет приятным в использовании. Эти правила применяются для всех видов надстроек, независимо от того, размещены они на [addons.mozilla.org](https://addons.mozilla.org/) или нет. + +--- + +## Расширения + +Расширения добавляют новые функции к приложениям Mozilla, например таким как Firefox и Thunderbird. С их помощью можно изменить стандартное поведение браузера, например реализовать другой способ организации и управления вкладками. Можно даже изменять содержимое отображаемого веб приложения, чтобы улучшить удобство использования или например повысить безопасность определённых сайтов. + +Существует 3 различных способа сборки расширений: restartless-расширения на основе Add-on SDK, restartless-расширения с реализацией этого механизма вручную (manually bootstrapped restartless extensions), и расширения с использованием технологии Overlay. + +- [Restartless-расширения на основе Add-on SDK](https://developer.mozilla.org/en-US/Add-ons/SDK) + Разработка restartless расширений с помощью высокоуровневого JavaScript API. +- [Restartless-расширения с реализацией этого механизма вручную](/en-US/Add-ons/Bootstrapped_extensions) + Разработка расширений с самостоятельной реализацией механизма restartless. +- [Расширения с использованием технологии Overlay Extensions](/en-US/Add-ons/Overlay_Extensions) + Устаревшей способ разработки расширений, при котором требуется перезапуск браузера. Основан на механизме наложения XUL. + +> **Примечание:** **Технология WebExtensions** +> +> В данный момент мы разрабатываем систему под названием WebExtensions, которая будет новым способом разработки расширений для браузера Firefox, эта система будет гораздо более совместима с браузерами Chrome и Opera. +> +> В будущем она станет наиболее предпочтительной при разработке новых проектов для браузера Firefox. +> +> В данный момент она является экспериментальной, но несмотря на это вы можете [ознакомиться с документацией](https://developer.mozilla.org/en-US/Add-ons/WebExtensions), если хотите её опробовать. + +Где это возможно, рекомендуется выбирать Add-On SDK, который использует механизм расширения без необходимости перезапуска браузера (restartless extensions), а также упрощает разработку и убирает за собой. Если вам недостаточно возможностей комплекта средств разработки Add-on SDK для реализации ваших идей, механизм restartless вы можете осуществить самостоятельно. Технология Overlay extensions в целом устарела и не рекомендуется при разработке новых расширений. + +Для получения дополнительной информации о том, какой способ использовать, прочтите это [сравнение](/en-US/Add-ons/Comparing_Extension_Toolchains). + +### Рекомендуемые практики + +Вне зависимости от того, каким способом вы разрабатываете расширение, имеются общие рекомендации, следуя которым вы гарантируете пользователю максимально приятную работу с вашим расширением. + +- [Производительность](/en-US/Add-ons/Performance_best_practices_in_extensions) + - : Убедитесь в том, что ваше расширение обладает хорошей производительностью. Оно должно быть достаточно быстрым, иметь отзывчивый интерфейс и потреблять минимальный объем памяти. +- [Безопасность](/en-US/Add-ons/Security_best_practices_in_extensions) + - : Убедитесь в том, что ваше приложение не подвергает пользователя опасности на вредоносных веб сайтах. +- [Этикет](/en-US/Add-ons/Extension_etiquette) + - : Убедитесь в том, что ваше расширение не конфликтует с другими расширениями. + +### Специфика разработки для различных приложений + +Большая часть документации предполагает, что вы разрабатываете для десктопной версии Firefox. Если вы разрабатываете для других основанных на движке Gecko приложений, то существуют некоторые отличия, о которых вам следует знать. + +- [Thunderbird](/en-US/Add-ons/Thunderbird) + - : Разработка расширений для почтового клиента Thunderbird. +- [Firefox для Андроид](/en-US/Add-ons/Firefox_for_Android) + - : Разработка расширений для Firefox под Андроид. +- [SeaMonkey](/en-US/Add-ons/SeaMonkey_2) + - : Разработка расширений для [SeaMonkey](http://www.seamonkey-project.org/). + +--- + +## Темы + +Темы это дополнения, которые изменяют внешний вид пользовательского интерфейса. Существуют два вида тем: легковесные темы и полные темы. + +[Легковесные темы](https://addons.mozilla.org/en-US/developers/docs/themes) значительно легче создать, чем полные, но их возможности ограничены. + +С помощью [полных тем](/ru/docs/Themes) вы можете гораздо глубже менять UI приложения. Документация к полным темам устарела, но приведена здесь в качестве возможной основы для обновлённой документации. + +--- + +## Другие типы дополнений + +[Поисковые плагины](/ru/docs/Creating_OpenSearch_plugins_for_Firefox) являются простыми и очень специфическими типами дополнений: они добавляют новые поисковые системы для поиска в строке браузера. + +**[Плагины](/ru/docs/Plugins) **(не путать с расширением и дополнением)\*\* \*\*помогают приложению понять содержание, которое не имеет встроенной поддержки. NPAPI-плагины являются устаревшей технологией и новые сайты не будут её использовать. Как правило, такие плагины не доступны для использования на большинстве современных мобильных систем, и веб-сайты должны избегать их использования + +## Смотрите также + +1. [Restartless extensions](https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions "Restartless extensions") +2. [Legacy extensions](https://developer.mozilla.org/en-US/Add-ons/Overlay_Extensions "Legacy extensions") +3. [Дополнения на основе SDK](https://developer.mozilla.org/en-US/Add-ons/SDK) +4. [Techniques](https://developer.mozilla.org/ru/Add-ons$edit#) + + 1. [Promises](https://developer.mozilla.org/en-US/Add-ons/Techniques/Promises) + +5. [Рекомендуемая практика](https://developer.mozilla.org/ru/Add-ons$edit#) + + 1. [Производительность](https://developer.mozilla.org/en-US/Add-ons/Performance_best_practices_in_extensions "Performance") + 2. [Безопасность](https://developer.mozilla.org/en-US/Add-ons/Security_best_practices_in_extensions "Security") + 3. [Этикет](https://developer.mozilla.org/en-US/Add-ons/Extension_etiquette "Etiquette") + +6. [Темы](https://developer.mozilla.org/ru/Add-ons$edit#) + + 1. [Легковесные темы](https://developer.mozilla.org/Add-ons/Themes/Background "Lightweight themes") + 2. [Легковесные темы FAQ](https://developer.mozilla.org/Add-ons/Themes/Background/FAQ "Lightweight themes FAQ") + 3. [Полные темы](/ru/docs/Themes "Complete themes") + +7. [Legacy Plugins](https://developer.mozilla.org/ru/Add-ons$edit#) + + 1. [Plug-in Basics](/ru/docs/Plugins/Guide/Plug-in_Basics) + 2. [Plug-in Development Overview](/ru/docs/Plugins/Guide/Plug-in_Development_Overview) + 3. [Initialization and Destruction](/ru/docs/Plugins/Guide/Initialization_and_Destruction) + 4. [Drawing and Event Handling](/ru/docs/Plugins/Guide/Drawing_and_Event_Handling) + 5. [Streams](/ru/docs/Plugins/Guide/Streams) + 6. [URLs](/ru/docs/Plugins/Guide/URLs) + 7. [Memory](/ru/docs/Plugins/Guide/Memory) + 8. [Version, UI, and Status Information](/ru/docs/Plugins/Guide/Version%2C_UI%2C_and_Status_Information) + 9. [Plug-in side Plug-in API](/ru/docs/Plugins/Guide/Plug-in_Side_Plug-in_API) + + 1. [NPP_Destroy](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_Destroy) + 2. [NPP_DestroyStream](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_DestroyStream) + 3. [NPP_GetValue](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_GetValue) + 4. [NP_GetValue](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NP_GetValue) + 5. [NPP_HandleEvent](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_HandleEvent) + 6. [NP_Initialize](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NP_Initialize) + 7. [NPP_New](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_New) + 8. [NPP_NewStream](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_NewStream) + 9. [NPP_Print](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_Print) + 10. [NPP_SetValue](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_SetValue) + 11. [NPP_SetWindow](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_SetWindow) + 12. [NP_Shutdown](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NP_Shutdown) + 13. [NPP_StreamAsFile](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_StreamAsFile) + 14. [NPP_URLNotify](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_URLNotify) + 15. [NPP_Write](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_Write) + 16. [NPP_WriteReady](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPP_WriteReady) + + 10. [Browser Side Plug-in API](/ru/docs/Plugins/Guide/Browser_Side_Plug-in_API) + + 1. [NPN_DestroyStream](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_DestroyStream "Closes and deletes a stream.") + 2. [NPN_ForceRedraw](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_ForceRedraw "Asks the plugin host to immediately (synchronously) repaint invalid areas.") + 3. [NPN_GetAuthenticationInfo](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_GetAuthenticationInfo "The function is called by plugins to get HTTP authentication information from the browser.") + 4. [NPN_GetURL](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_GetURL "Asks the browser to create a stream for the specified URL.") + 5. [NPN_GetURLNotify](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_GetURLNotify "Requests creation of a new stream with the contents of the specified URL; gets notification of the result.") + 6. [NPN_GetValue](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_GetValue "Allows the plug-in to query the browser for information.") + 7. [NPN_GetValueForURL](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_GetValueForURL "Provides information to a plugin which is associated with a given URL, for example the cookies or preferred proxy.") + 8. [NPN_InvalidateRect](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_InvalidateRect "Invalidates the specified portion of the plugin's drawing area, adding it to the region that needs to be redrawn when the plugin next repaints its contents.") + 9. [NPN_InvalidateRegion](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_InvalidateRegion "Invalidates the specified drawing region prior to repainting or refreshing a windowless plug-in.") + 10. [NPN_MemAlloc](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_MemAlloc "Allocates memory from the browser's memory space.") + 11. [NPN_MemFlush](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_MemFlush "Requests that the browser free a specified amount of memory.") + 12. [NPN_MemFree](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_MemFree "Deallocates a block of allocated memory.") + 13. [NPN_NewStream](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_NewStream "Requests the creation of a new data stream produced by the plug-in and consumed by the browser.") + 14. [NPN_PluginThreadAsyncCall](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_PluginThreadAsyncCall "Thread safe way to request that the browser calls a plug-in function on the browser or plugin thread (the thread on which the plug-in was initiated).") + 15. [NPN_PostURL](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_PostURL "Posts data to a URL.") + 16. [NPN_PostURLNotify](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference//NPN_PostURLNotify "Posts data to a URL, and receives notification of the result.") + 17. [NPN_ReloadPlugins](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_ReloadPlugins "Reloads all of the installed plugins.") + 18. [NPN_RequestRead](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_RequestRead "Requests a range of bytes from a seekable stream. This initiates a read operation; the actual data is received through subsequent calls to NPP_WriteReady() and NPP_Write().") + 19. [NPN_SetValue](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_SetValue "Implemented by browsers. This call is used to inform the browser of variable information controlled by the plugin.") + 20. [NPN_SetValueForURL](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_SetValueForURL "Allows a plugin to change the stored information associated with a URL, in particular its cookies. (While the API theoretically allows the preferred proxy for a given URL to be changed, doing so does not have much meaning given how proxies are configured, and is not supported.)") + 21. [NPN_Status](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_Status "Lets a plug-in display a message on the browser's status line.") + 22. [NPN_UserAgent](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_UserAgent "Returns the browser's user agent field. This can be used to handle variations in different browsers (or versions thereof) when implementing your plug-in.") + 23. [NPN_Version](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/docs/NPN_Version "Lets plugins obtain version information, both of the plug-in API and of the browser itself.") + 24. [NPN_Write](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_Write "Pushes data into a stream produced by the plug-in and consumed by the browser.") + + 11. [Scripting plugins](/ru/docs/Plugins/Guide/Scripting_plugins) + + 1. [NPString](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPString) + 2. [NPVariant](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPVariant) + 3. [NPN_ReleaseVariantValue](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_ReleaseVariantValue) + 4. [NPN_GetStringIdentifier](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_GetStringIdentifier) + 5. [NPN_GetStringIdentifiers](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_GetStringIdentifiers) + 6. [NPN_GetIntIdentifier](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_GetIntIdentifier) + 7. [NPN_IdentifierIsString](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_IdentifierIsString) + 8. [NPN_UTF8FromIdentifier](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_UTF8FromIdentifier) + 9. [NPN_IntFromIdentifier](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_IntFromIdentifier) + 10. [NPObject](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPObject) + 11. [NPN_CreateObject](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_CreateObject) + 12. [NPN_RetainObject](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_RetainObject) + 13. [NPN_ReleaseObject](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_ReleaseObject) + 14. [NPN_Invoke](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_Invoke) + 15. [NPN_InvokeDefault](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_InvokeDefault) + 16. [NPN_Evaluate](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_Evaluate) + 17. [NPN_GetProperty](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_GetProperty) + 18. [NPN_SetProperty](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_SetProperty) + 19. [NPN_RemoveProperty](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_RemoveProperty) + 20. [NPN_HasProperty](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_HasProperty) + 21. [NPN_HasMethod](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_HasMethod) + 22. [NPN_SetException](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPN_SetException) + 23. [NPClass](https://developer.mozilla.org/en-US/Add-ons/Plugins/Reference/NPClass) + + 12. [Structures](/ru/docs/Plugins/Guide/Structures) + 13. [Constants](/ru/docs/Plugins/Guide/Constants) + 14. [External Resources](https://developer.mozilla.org/en-US/Add-ons/Plugins/External_resources_for_plugin_creation) + +8. [Publishing add-ons](https://developer.mozilla.org/ru/Add-ons$edit#) + + 1. [Signing and distributing your add-on](https://developer.mozilla.org/en-US/Add-ons/Distribution) + 2. [Submit a new add-on](https://addons.mozilla.org/developers/addon/submit/) + 3. [Policies](https://developer.mozilla.org/en-US/Add-ons/AMO/Policy) + + 1. [Developer Agreement](https://developer.mozilla.org/en-US/Add-ons/AMO/Policy/Agreement) + 2. [Review Process](https://developer.mozilla.org/en-US/Add-ons/AMO/Policy/Reviews) + 3. [Add-on guidelines](https://developer.mozilla.org/en-US/Add-ons/Add-on_guidelines) + 4. [Featured Add-ons](https://developer.mozilla.org/en-US/Add-ons/AMO/Policy/Featured) + 5. [Contacting Us](https://developer.mozilla.org/en-US/Add-ons/AMO/Policy/Contact) + +9. [Community and Support](https://developer.mozilla.org/ru/Add-ons$edit#) + + 1. [Add-ons Blog](https://blog.mozilla.org/addons) + 2. [Add-on Forums](https://forums.mozilla.org/addons) + 3. [Stack Overflow](http://stackoverflow.com/questions/tagged/firefox-addon) + 4. [Development Newsgroup](https://groups.google.com/forum/#%21forum/mozilla.dev.extensions) + 5. [IRC Channel](irc://irc.mozilla.org/extdev) diff --git a/files/ru/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.html b/files/ru/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.html deleted file mode 100644 index 6ef2ee225378ca..00000000000000 --- a/files/ru/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.html +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: Анатомия Расширения -slug: Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension -tags: - - Расширение - - веб расширение -translation_of: Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension ---- -

{{AddonSidebar}}

- -

Расширение состоит из набора файлов, упакованных для распространения и установки. В этой статье мы быстро рассмотрим файлы, которые могут присутствовать в расширении.

- -

manifest.json

- -

Это единственный файл, который должен присутствовать в каждом расширении. Он содержит основные метаданные, такие как его имя, версию и требуемые разрешения. Он также предоставляет указатели на другие файлы в расширении.

- -

Этот манифест также может содержать указатели на несколько других типов файлов:

- - - -


-

- -

Для получения подробной информации см. справочную страницу manifest.json

- -

Помимо ссылок, указанных в манифесте, расширение может включать дополнительные веб-страницы расширения с поддерживающимися файлами.

- -

Фоновые скрипты

- -

Расширения часто должны поддерживать долгосрочное состояние или выполнять долгосрочные операции независимо от срока жизни любой конкретной веб-страницы или окна браузера. Для этого нужны фоновые сценарии.

- -

Фоновые сценарии загружаются сразу после загрузки расширения и остаются загруженными до тех пор, пока расширение не будет отключено или удалено. вы можете использовать любой API расширений в сценарии, если вы запросили необходимые разрешения.

- -

Спецификации фоновых скриптов

- -

Вы можете включить фоновый скрипт, используя background ключ в «manifest.json»:

- -
// manifest.json
-
-"background": {
-  "scripts": ["background-script.js"]
-}
- -

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

- -

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

- -

manifest.json

- -
// manifest.json
-
-"background": {
-  "page": "background-page.html"
-}
- -

background-page.html

- -
<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="utf-8">
-    <script type="module" src="background-script.js"></script>
-  </head>
-</html>
- -

Окружение фоновых скриптов

- -

DOM APIs

- -

Фоновые скрипты запускаются в пространстве специальной страницы, называемой фоновой. Это даёт им доступ к глобальному window объекту, а так же ко всем его DOM APIs.

- -

WebExtension APIs

- -

Фоновые скрипты могут использовать любые API расширений, если расширение имеет необходимые разрешения.

- -

Многоцелевой доступ

- -

Фоновые скрипты могут осуществлять XHR запросы к любому домену, если расширение имеет host разрешения.

- -

Web-содержимое

- -

Фоновые скрипты не получают прямого доступа к веб-страницам. Однако они могут загружать скрипты содержимого на веб-страницы и взаимодействовать с этими скриптами с помощью API передачи сообщений.

- -

Политика безопасности содержимого

- -

Фоновые скрипты ограничены в выполнении потенциально опасных операций, таких как eval(), через политику безопасности содержимого. Подробнее см. Content Security Policy.

- -

Боковые панели (sidebar), всплывающие окна (popup), страницы настроек

- -

Ваше расширение может иметь разнообразные компоненты интерфейса, определённые в HTML документах:

- - - -

Для каждого из этих компонентов вы создаёте HTML файл и помещаете специальную информацию в manifest.json. HTML файл может в себя включать CSS и JavaScript файлы, как и любая web-страница.

- -

Всё это типы веб-страниц расширения, и, в отличие от нормальных веб-страниц, ваш JavaScript может использовать все привелегии WebExtension APIs, как и ваши фоновые скрипты. Они даже могут получить доступ к переменным в фоновой странице, используя {{WebExtAPIRef("runtime.getBackgroundPage()")}}.

- -

Веб-страницы расширения

- -

Вы также можете включить HTML документы в ваше расширение, даже если они не будут включены в какой-либо существующий компонент пользовательского интерфейса. В отличие от документов, которые вы можете предоставить для боковых панелей, всплывающих окон или страниц настроек, эти документы не содержатся в manifest.json. Однако, они также имеют такой же доступ к WebExtension APIs, как и фоновые скрипты.

- -

Вы можете загрузить такую страницу, используя {{WebExtAPIRef("windows.create()")}} или {{WebExtAPIRef("tabs.create()")}}.

- -

Подробнее см. Extension pages.

- -

Встраиваемые скрипты

- -

Используйте встраиваемые скрипты для доступа и изменения веб-страниц. Встраиваемые скрипты загружаются в веб-страницу и исполняются в контексте данной конкретной страницы.

- -

Встраиваемые скрипты предоставляются расширением; этим они отличаются от скриптов, загруженных самой веб-страницей, включая тех, что загружены с помощью {{HTMLElement("script")}} элемента веб-страницы.

- -

Встраиваемые скрипты имеют доступ и могут манипулировать DOM, как и обычные скрипты, загруженные веб-страницей.

- -

В отличие от обычных скриптов, они могут:

- - - -

Встраиваемые скрипты не могут напрямую взаимодействовать с обычными скриптами на странице, но они могут обмениваться сообщениями с помощью стандартного window.postMessage() API.

- -

Обычно, когда мы говорим о встраиваемых скриптах, мы отсылаемся к JavaScript, но вы так же можете внедрить CSS в веб-страницы, используя этот же механизм.

- -

Подробнее см. content scripts.

- -

Веб-доступные ресурсы

- -

Веб-доступные ресурсы - это ресурсы вроде изображений, HTML, CSS и JavaScript, которые вы включаете в расширение и хотите сделать доступными для встраиваемых скриптов и оригинальных скриптов веб-страницы. Такие ресурсы могут быть доступны скриптам через специальную URI схему.

- -

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

- -

Подробнее см. web_accessible_resources секцию manifest.json.

- -

- -

diff --git a/files/ru/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.md b/files/ru/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.md new file mode 100644 index 00000000000000..0ea51022188740 --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/anatomy_of_a_webextension/index.md @@ -0,0 +1,143 @@ +--- +title: Анатомия Расширения +slug: Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension +tags: + - Расширение + - веб расширение +translation_of: Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension +--- +{{AddonSidebar}} + +Расширение состоит из набора файлов, упакованных для распространения и установки. В этой статье мы быстро рассмотрим файлы, которые могут присутствовать в расширении. + +## manifest.json + +Это единственный файл, который должен присутствовать в каждом расширении. Он содержит основные метаданные, такие как его имя, версию и требуемые разрешения. Он также предоставляет указатели на другие файлы в расширении. + +Этот манифест также может содержать указатели на несколько других типов файлов: + +- [Background pages](/ru/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts): Реализует долгоиграющую логику. +- Иконки для расширения и любых кнопок, которые оно может определить. +- [Sidebars, popups, and options pages](/ru/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Sidebars_popups_options_pages): HTML-документы, которые предоставляют содержимое для различных компонентов пользовательского интерфейса. +- [Content scripts](/ru/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Content_scripts): JavaScript сценарии вашего расширения, которые будут исполняться на веб-страницах. +- [Web-accessible resources](/ru/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Web_accessible_resources): Делает контент вашего расширения видимым для веб-страниц и скриптов. + +![](https://mdn.mozillademos.org/files/13669/webextension-anatomy.png) + +Для получения подробной информации см. справочную страницу [manifest.json](/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json) + +Помимо ссылок, указанных в манифесте, расширение может включать дополнительные [веб-страницы расширения](/ru/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Extension_pages) с поддерживающимися файлами. + +## Фоновые скрипты + +Расширения часто должны поддерживать долгосрочное состояние или выполнять долгосрочные операции независимо от срока жизни любой конкретной веб-страницы или окна браузера. Для этого нужны фоновые сценарии. + +Фоновые сценарии загружаются сразу после загрузки расширения и остаются загруженными до тех пор, пока расширение не будет отключено или удалено. вы можете использовать любой [API расширений](/ru/docs/Mozilla/Add-ons/WebExtensions/API) в сценарии, если вы запросили необходимые [разрешения](/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions). + +### Спецификации фоновых скриптов + +Вы можете включить фоновый скрипт, используя `background` ключ в «manifest.json»: + +```json +// manifest.json + +"background": { + "scripts": ["background-script.js"] +} +``` + +Вы можете указать несколько фоновых сценариев: если вы это сделаете, они выполняются в том же контексте, как и несколько сценариев, загруженных на одной веб-странице. + +Вместо указания несколько фоновых сценариев вы можете указать фоновую страницу, которая так же преимущества поддержки ES6 модулей: + +**manifest.json** + +```json +// manifest.json + +"background": { + "page": "background-page.html" +} +``` + +**background-page.html** + +```html + + + + + + + +``` + +### Окружение фоновых скриптов + +#### DOM APIs + +Фоновые скрипты запускаются в пространстве специальной страницы, называемой фоновой. Это даёт им доступ к глобальному [`window`](/en-US/docs/Web/API/Window) объекту, а так же ко всем его DOM APIs. + +#### WebExtension APIs + +Фоновые скрипты могут использовать любые [API расширений](/ru/docs/Mozilla/Add-ons/WebExtensions/API), если расширение имеет необходимые [разрешения](/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions). + +#### Многоцелевой доступ + +Фоновые скрипты могут осуществлять XHR запросы к любому домену, если расширение имеет [host разрешения](/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions). + +#### Web-содержимое + +Фоновые скрипты не получают прямого доступа к веб-страницам. Однако они могут загружать [скрипты содержимого](/ru/docs/Mozilla/Add-ons/WebExtensions/Content_scripts) на веб-страницы и [взаимодействовать с этими скриптами с помощью API передачи сообщений](/ru/docs/Mozilla/Add-ons/WebExtensions/Content_scripts#Communicating_with_background_scripts). + +#### Политика безопасности содержимого + +Фоновые скрипты ограничены в выполнении потенциально опасных операций, таких как [`eval()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval), через политику безопасности содержимого. Подробнее см. [Content Security Policy](/ru/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy). + +## Боковые панели (sidebar), всплывающие окна (popup), страницы настроек + +Ваше расширение может иметь разнообразные компоненты интерфейса, определённые в HTML документах: + +- [Боковая панель (sidebar](/ru/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars)) - это панель, отображаемая в окне браузера с левой стороны, рядом с веб-страницей +- [Всплывающие окна (popup](/ru/docs/Mozilla/Add-ons/WebExtensions/user_interface/Popups)) - диалоговое окно, отображаемое по клику на [кнопке](/ru/docs/Mozilla/Add-ons/WebExtensions/user_interface/Browser_action) на [панели инструментов](/ru/docs/Mozilla/Add-ons/WebExtensions/user_interface/Browser_action) или в адресной строке +- [Страница настроек](/ru/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages) открывается, когда пользователь обращается к настройкам расширения на странице менеджера расширений. + +Для каждого из этих компонентов вы создаёте HTML файл и помещаете специальную информацию в [manifest.json](/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json). HTML файл может в себя включать CSS и JavaScript файлы, как и любая web-страница. + +Всё это типы [веб-страниц расширения](/ru/docs/Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages), и, в отличие от нормальных веб-страниц, ваш JavaScript может использовать все привелегии WebExtension APIs, как и ваши фоновые скрипты. Они даже могут получить доступ к переменным в фоновой странице, используя {{WebExtAPIRef("runtime.getBackgroundPage()")}}. + +## Веб-страницы расширения + +Вы также можете включить HTML документы в ваше расширение, даже если они не будут включены в какой-либо существующий компонент пользовательского интерфейса. В отличие от документов, которые вы можете предоставить для боковых панелей, всплывающих окон или страниц настроек, эти документы не содержатся в manifest.json. Однако, они также имеют такой же доступ к WebExtension APIs, как и фоновые скрипты. + +Вы можете загрузить такую страницу, используя {{WebExtAPIRef("windows.create()")}} или {{WebExtAPIRef("tabs.create()")}}. + +Подробнее см. [Extension pages](/ru/docs/Mozilla/Add-ons/WebExtensions/user_interface/Extension_pages). + +## Встраиваемые скрипты + +Используйте встраиваемые скрипты для доступа и изменения веб-страниц. Встраиваемые скрипты загружаются в веб-страницу и исполняются в контексте данной конкретной страницы. + +Встраиваемые скрипты предоставляются расширением; этим они отличаются от скриптов, загруженных самой веб-страницей, включая тех, что загружены с помощью {{HTMLElement("script")}} элемента веб-страницы. + +Встраиваемые скрипты имеют доступ и могут манипулировать DOM, как и обычные скрипты, загруженные веб-страницей. + +В отличие от обычных скриптов, они могут: + +- Осуществлять XHR запросы. +- Использовать часть [API расширений](/ru/docs/Mozilla/Add-ons/WebExtensions/API). +- Обмениваться сообщениями с их фоновыми скриптами и таким образом иметь доступ ко всему WebExtension APIs. + +Встраиваемые скрипты не могут напрямую взаимодействовать с обычными скриптами на странице, но они могут обмениваться сообщениями с помощью стандартного [`window.postMessage()`](/en-US/docs/Web/API/Window/postMessage) API. + +Обычно, когда мы говорим о встраиваемых скриптах, мы отсылаемся к JavaScript, но вы так же можете внедрить CSS в веб-страницы, используя этот же механизм. + +Подробнее см. [content scripts](/ru/docs/Mozilla/Add-ons/WebExtensions/Content_scripts). + +## Веб-доступные ресурсы + +Веб-доступные ресурсы - это ресурсы вроде изображений, HTML, CSS и JavaScript, которые вы включаете в расширение и хотите сделать доступными для встраиваемых скриптов и оригинальных скриптов веб-страницы. Такие ресурсы могут быть доступны скриптам через специальную URI схему. + +Например, если встраиваемый скрипт хочет добавить какие-либо изображения в веб-страницу, вы можете включить эти изображения в расширение и сделать их веб-доступными. Тогда встраиваемый скрипт может создать и добавить [`img`](/en-US/docs/Web/HTML/Element/img) тэги, которые будут ссылаться на эти изображения через `src` атрибут. + +Подробнее см. [web_accessible_resources](/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json/web_accessible_resources) секцию manifest.json. diff --git a/files/ru/mozilla/add-ons/webextensions/api/cookies/cookie/index.html b/files/ru/mozilla/add-ons/webextensions/api/cookies/cookie/index.html deleted file mode 100644 index 25369878bee8e4..00000000000000 --- a/files/ru/mozilla/add-ons/webextensions/api/cookies/cookie/index.html +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: cookies.Cookie -slug: Mozilla/Add-ons/WebExtensions/API/cookies/Cookie -tags: - - API - - Cookies - - cookie - - Дополнения - - Расширения - - Справка - - данные -translation_of: Mozilla/Add-ons/WebExtensions/API/cookies/Cookie ---- -
{{AddonSidebar()}}
- -

Тип Cookie из {{WebExtAPIRef("cookies")}} API представляет собой информацию о HTTP cookie.

- -

Тип

- -

Значения этого типа - объекты, которые могут содержать следующие свойства:

- -
-
name
-
string - содержит имя cookie.
-
value
-
string - содержит значение cookie.
-
domain
-
string - содержит домен, которому принадлежит cookie (например, "www.google.com", "example.com").
-
hostOnly
-
boolean - true если cookie является host-only (то есть запрашивающий хост должен в точности совпадать с доменом cookie), в ином случае false.
-
path
-
string - содержит path cookie.
-
secure
-
boolean - true, если cookie помечен как secure (то есть его область действия ограничена безопасными каналами, обычно HTTPS), в ином случае false.
-
httpOnly
-
boolean - true если cookie помечен как HttpOnly (то есть он недоступен для клиентских скриптов), иначе false.
-
session
-
boolean - true если cookie является сессионным, false если cookie является постоянным с указанным временем жизни.
-
expirationDate{{optional_inline}}
-
number - содержит срок годности cookie, который представляется количеством секунд с начала UNIX-эры. Отсутствует для сессионных cookie.
-
storeId
-
string - представляет собой ID хранилища, в котором хранится данный cookie, как указано в соответствии с {{WebExtAPIRef("cookies.getAllCookieStores()")}}.
-
- -

Совместимость с браузерами

-

{{Compat}}

- -

Примеры

- -

В большинстве методов из cookies API объекты типа Cookie используются как входные параметры методов, либо же как возвращаемые значения. К примеру, вызов {{WebExtAPIRef("cookies.getAll()")}} возвращает массив объектов типа Cookie.

- -

В примере ниже мы запрашиваем все cookie, а затем выводим в лог некоторые из полей полученных Cookie объектов:

- -
function logCookies(cookies) {
-  for (cookie of cookies) {
-    console.log(`Domain: ${cookie.domain}`);
-    console.log(`Name: ${cookie.name}`);
-    console.log(`Value: ${cookie.value}`);
-    console.log(`Persistent: ${!cookie.session}`);
-  }
-}
-
-var gettingAll = browser.cookies.getAll({});
-gettingAll.then(logCookies);
- -

{{WebExtExamples}}

- -
Примечание - -

Это API основано на API Chromium chrome.cookies. Эта документация основана на cookies.json из кода Chromium.

- -

Информация о совместимости Microsoft Edge предоставлена корпорацией Microsoft и включена здесь под лицензией Creative Commons Attribution 3.0 United States License.

-
- - diff --git a/files/ru/mozilla/add-ons/webextensions/api/cookies/cookie/index.md b/files/ru/mozilla/add-ons/webextensions/api/cookies/cookie/index.md new file mode 100644 index 00000000000000..2d0a95db61627e --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/api/cookies/cookie/index.md @@ -0,0 +1,101 @@ +--- +title: cookies.Cookie +slug: Mozilla/Add-ons/WebExtensions/API/cookies/Cookie +tags: + - API + - Cookies + - cookie + - Дополнения + - Расширения + - Справка + - данные +translation_of: Mozilla/Add-ons/WebExtensions/API/cookies/Cookie +--- +{{AddonSidebar()}} + +Тип `Cookie` из {{WebExtAPIRef("cookies")}} API представляет собой информацию о HTTP cookie. + +## Тип + +Значения этого типа - объекты, которые могут содержать следующие свойства: + +- `name` + - : `string` - содержит имя cookie. +- `value` + - : `string` - содержит значение cookie. +- `domain` + - : `string` - содержит домен, которому принадлежит cookie (например, "www\.google.com", "example.com"). +- `hostOnly` + - : `boolean` - `true` если cookie является host-only (то есть запрашивающий хост должен в точности совпадать с доменом cookie), в ином случае `false`. +- `path` + - : `string` - содержит path cookie. +- `secure` + - : `boolean` - `true`, если cookie помечен как secure (то есть его область действия ограничена безопасными каналами, обычно HTTPS), в ином случае `false`. +- `httpOnly` + - : `boolean` - `true` если cookie помечен как HttpOnly (то есть он недоступен для клиентских скриптов), иначе `false`. +- `session` + - : `boolean` - `true` если cookie является сессионным, `false` если cookie является постоянным с указанным временем жизни. +- `expirationDate`{{optional_inline}} + - : `number` - содержит срок годности cookie, который представляется количеством секунд с начала UNIX-эры. Отсутствует для сессионных cookie. +- `storeId` + - : `string` - представляет собой ID хранилища, в котором хранится данный cookie, как указано в соответствии с {{WebExtAPIRef("cookies.getAllCookieStores()")}}. + +## Совместимость с браузерами + +{{Compat}} + +## Примеры + +В большинстве методов из cookies API объекты типа `Cookie` используются как входные параметры методов, либо же как возвращаемые значения. К примеру, вызов {{WebExtAPIRef("cookies.getAll()")}} возвращает массив объектов типа `Cookie`. + +В примере ниже мы запрашиваем все cookie, а затем выводим в лог некоторые из полей полученных `Cookie` объектов: + +```js +function logCookies(cookies) { + for (cookie of cookies) { + console.log(`Domain: ${cookie.domain}`); + console.log(`Name: ${cookie.name}`); + console.log(`Value: ${cookie.value}`); + console.log(`Persistent: ${!cookie.session}`); + } +} + +var gettingAll = browser.cookies.getAll({}); +gettingAll.then(logCookies); +``` + +{{WebExtExamples}} + +> **Примечание:** Это API основано на API Chromium [`chrome.cookies`](https://developer.chrome.com/extensions/cookies#type-Cookie). Эта документация основана на [`cookies.json`](https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/cookies.json) из кода Chromium. +> +> Информация о совместимости Microsoft Edge предоставлена корпорацией Microsoft и включена здесь под лицензией Creative Commons Attribution 3.0 United States License. + + diff --git a/files/ru/mozilla/add-ons/webextensions/api/cookies/index.html b/files/ru/mozilla/add-ons/webextensions/api/cookies/index.html deleted file mode 100644 index 4dc8892c132665..00000000000000 --- a/files/ru/mozilla/add-ons/webextensions/api/cookies/index.html +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: cookies -slug: Mozilla/Add-ons/WebExtensions/API/cookies -tags: - - API - - Add-ons - - Cookies - - Extensions - - Interface - - NeedsTranslation - - Non-standard - - Reference - - TopicStub - - WebExtensions -translation_of: Mozilla/Add-ons/WebExtensions/API/cookies ---- -
{{AddonSidebar}}
- -

Позволяет WebExtensions получить и установить куки ,а также сообщить об их изменении.

- -

Для использования этого API,вам нужно предоставить доступ API permission в вашем файле manifest.json,а также host permissions для тех сайтов чьи куки вам нужны для доступа.Смотрите cookie Permissions.

- -

Types

- -
-
{{WebExtAPIRef("cookies.Cookie")}}
-
Предоставляет информацию о HTTP cookie
-
{{WebExtAPIRef("cookies.CookieStore")}}
-
Represents a cookie store in the browser.
-
{{WebExtAPIRef("cookies.OnChangedCause")}}
-
Represents the reason a cookie changed.
-
- -

Methods

- -
-
{{WebExtAPIRef("cookies.get()")}}
-
Запрашивает информацию об одном кукис.
-
{{WebExtAPIRef("cookies.getAll()")}}
-
Выдаёт все кукис которые подходят установленному фильтру.
-
{{WebExtAPIRef("cookies.set()")}}
-
Устанавливает кукис с заданной информацией;в том случае если подобный кукис был информация будет перезаписана.
-
{{WebExtAPIRef("cookies.remove()")}}
-
Удаляет кукис по имени.
-
{{WebExtAPIRef("cookies.getAllCookieStores()")}}
-
Список всех существующих куки
-
- -

Event handlers

- -
-
{{WebExtAPIRef("cookies.onChanged")}}
-
Происходит когда кукис задаётся или меняется.
-
- -

Permissions

- -

In order to use this API, an add-on must specify the "cookies" API permission in its manifest, along with host permissions for any sites for which it wishes to access cookies. The add-on may read or write any cookies which could be read or written by a URL matching the host permissions. For example:

- -
-
http://*.example.com/
-
-

An add-on with this host permission may:

- - - -

It may not:

- - -
-
http://www.example.com/
-
-

An add-on with this host permission may:

- - - -

It may not:

- - -
-
*://*.example.com/
-
-

An add-on with this host permission may:

- - -
-
- -

Browser compatibility

- -

{{Compat}}

- -

Edge incompatibilities

- -

Promises are not supported in Edge. Use callbacks instead.

- -

{{WebExtExamples("h2")}}

- -
Acknowledgements - -

This API is based on Chromium's chrome.cookies API. This documentation is derived from cookies.json in the Chromium code.

- -

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

-
- - diff --git a/files/ru/mozilla/add-ons/webextensions/api/cookies/index.md b/files/ru/mozilla/add-ons/webextensions/api/cookies/index.md new file mode 100644 index 00000000000000..52b0f0f731a804 --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/api/cookies/index.md @@ -0,0 +1,127 @@ +--- +title: cookies +slug: Mozilla/Add-ons/WebExtensions/API/cookies +tags: + - API + - Add-ons + - Cookies + - Extensions + - Interface + - NeedsTranslation + - Non-standard + - Reference + - TopicStub + - WebExtensions +translation_of: Mozilla/Add-ons/WebExtensions/API/cookies +--- +{{AddonSidebar}} + +Позволяет WebExtensions получить и установить куки ,а также сообщить об их изменении. + +Для использования этого API,вам нужно предоставить доступ [API permission](/en-US/Add-ons/WebExtensions/manifest.json/permissions#API_permissions) в вашем файле [manifest.json](/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json),а также [host permissions](/en-US/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions) для тех сайтов чьи куки вам нужны для доступа.Смотрите [cookie Permissions](/en-US/Add-ons/WebExtensions/API/cookies#Permissions). + +## Types + +- {{WebExtAPIRef("cookies.Cookie")}} + - : Предоставляет информацию о HTTP cookie +- {{WebExtAPIRef("cookies.CookieStore")}} + - : Represents a cookie store in the browser. +- {{WebExtAPIRef("cookies.OnChangedCause")}} + - : Represents the reason a cookie changed. + +## Methods + +- {{WebExtAPIRef("cookies.get()")}} + - : Запрашивает информацию об одном кукис. +- {{WebExtAPIRef("cookies.getAll()")}} + - : Выдаёт все кукис которые подходят установленному фильтру. +- {{WebExtAPIRef("cookies.set()")}} + - : Устанавливает кукис с заданной информацией;в том случае если подобный кукис был информация будет перезаписана. +- {{WebExtAPIRef("cookies.remove()")}} + - : Удаляет кукис по имени. +- {{WebExtAPIRef("cookies.getAllCookieStores()")}} + - : Список всех существующих куки + +## Event handlers + +- {{WebExtAPIRef("cookies.onChanged")}} + - : Происходит когда кукис задаётся или меняется. + +## Permissions + +In order to use this API, an add-on must specify the "cookies" [API permission](/en-US/Add-ons/WebExtensions/manifest.json/permissions#API_permissions) in its manifest, along with [host permissions](/en-US/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions) for any sites for which it wishes to access cookies. The add-on may read or write any cookies which could be read or written by a URL matching the host permissions. For example: + +- `http://*.example.com/` + + - : An add-on with this host permission may: + + - Read a non-secure cookie for `www.example.com`, with any path. + - Write a secure or non-secure cookie for `www.example.com`, with any path. + + It may _not_: + + - Read a secure cookie for `www.example.com`. + +- `http://www.example.com/` + + - : An add-on with this host permission may: + + - Read a non-secure cookie for `www.example.com`, with any path. + - Read a non-secure cookie for `.example.com`, with any path. + - Write a secure or non-secure cookie for `www.example.com` with any path. + - Write a secure or non-secure cookie for `.example.com` with any path. + + It may _not_: + + - Read or write a cookie for `foo.example.com`. + - Read or write a cookie for `foo.www.example.com`. + +- `*://*.example.com/` + + - : An add-on with this host permission may: + + - Read or write a secure or non-secure cookie for `www.example.com` with any path. + +## Browser compatibility + +{{Compat}} + +### Edge incompatibilities + +Promises are not supported in Edge. Use callbacks instead. + +{{WebExtExamples("h2")}} + +> **Примечание:** Это API основано на API Chromium [`chrome.cookies`](https://developer.chrome.com/extensions/cookies). Эта документация основана на [`cookies.json`](https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/cookies.json) из кода Chromium. +> +> Информация о совместимости Microsoft Edge предоставлена корпорацией Microsoft и включена здесь под лицензией Creative Commons Attribution 3.0 United States License. + + diff --git a/files/ru/mozilla/add-ons/webextensions/api/downloads/index.html b/files/ru/mozilla/add-ons/webextensions/api/downloads/index.html deleted file mode 100644 index b390a9fdbb3230..00000000000000 --- a/files/ru/mozilla/add-ons/webextensions/api/downloads/index.html +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: downloads -slug: Mozilla/Add-ons/WebExtensions/API/downloads -translation_of: Mozilla/Add-ons/WebExtensions/API/downloads ---- -
{{AddonSidebar}}
- -

Позволяет расширениям взаимодействовать с менеджером загрузки браузера. Этот модуль API можно использовать для загрузки, отмены, приостановки, возобновления загрузки файлов и отображения загруженных файлов в файловом менеджере.

- -

Для использования этого API вам необходимо указать "downloads" API permission в вашем manifest.json файле.

- -

Types

- -
-
{{WebExtAPIRef("downloads.FilenameConflictAction")}}
-
Определяет действия в случае, если имя загружаемого файла конфликтует с именем существующего файла.
-
{{WebExtAPIRef("downloads.InterruptReason")}}
-
Defines a set of possible reasons why a download was interrupted.
-
{{WebExtAPIRef("downloads.DangerType")}}
-
Defines a set of common warnings of possible dangers associated with downloadable files.
-
{{WebExtAPIRef("downloads.State")}}
-
Defines different states that a current download can be in.
-
{{WebExtAPIRef("downloads.DownloadItem")}}
-
Represents a downloaded file.
-
{{WebExtAPIRef("downloads.StringDelta")}}
-
Represents the difference between two strings.
-
{{WebExtAPIRef("downloads.DoubleDelta")}}
-
Represents the difference between two doubles.
-
{{WebExtAPIRef("downloads.BooleanDelta")}}
-
Represents the difference between two booleans.
-
{{WebExtAPIRef("downloads.DownloadTime")}}
-
Represents the time a download took to complete.
-
{{WebExtAPIRef("downloads.DownloadQuery")}}
-
Defines a set of parameters that can be used to search the downloads manager for a specific set of downloads.
-
- -

Functions

- -
-
{{WebExtAPIRef("downloads.download()")}}
-
Downloads a file, given its URL and other optional preferences.
-
{{WebExtAPIRef("downloads.search()")}}
-
Queries the {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} available in the browser's downloads manager, and returns those that match the specified search criteria.
-
{{WebExtAPIRef("downloads.pause()")}}
-
Pauses a download.
-
{{WebExtAPIRef("downloads.resume()")}}
-
Resumes a paused download.
-
{{WebExtAPIRef("downloads.cancel()")}}
-
Cancels a download.
-
{{WebExtAPIRef("downloads.getFileIcon()")}}
-
Retrieves an icon for the specified download.
-
{{WebExtAPIRef("downloads.open()")}}
-
Opens the downloaded file with its associated application.
-
{{WebExtAPIRef("downloads.show()")}}
-
Opens the platform's file manager application to show the downloaded file in its containing folder.
-
{{WebExtAPIRef("downloads.showDefaultFolder()")}}
-
Opens the platform's file manager application to show the default downloads folder.
-
{{WebExtAPIRef("downloads.erase()")}}
-
Erases matching {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} from the browser's download history, without deleting the downloaded files from disk.
-
{{WebExtAPIRef("downloads.removeFile()")}}
-
Removes a downloaded file from disk, but not from the browser's download history.
-
{{WebExtAPIRef("downloads.acceptDanger()")}}
-
Prompts the user to accept or cancel a dangerous download.
-
{{WebExtAPIRef("downloads.drag()")}}
-
Initiates dragging the downloaded file to another application.
-
{{WebExtAPIRef("downloads.setShelfEnabled()")}}
-
Enables or disables the gray shelf at the bottom of every window associated with the current browser profile. The shelf will be disabled as long as at least one extension has disabled it.
-
- -

Events

- -
-
{{WebExtAPIRef("downloads.onCreated")}}
-
Fires with the {{WebExtAPIRef("downloads.DownloadItem", "DownloadItem")}} object when a download begins.
-
{{WebExtAPIRef("downloads.onErased")}}
-
Fires with the downloadId when a download is erased from history.
-
{{WebExtAPIRef("downloads.onChanged")}}
-
When any of a {{WebExtAPIRef("downloads.DownloadItem", "DownloadItem")}}'s properties except bytesReceived changes, this event fires with the downloadId and an object containing the properties that changed.
-
- -

Browser compatibility

- -

{{Compat}}

- -

{{WebExtExamples("h2")}}

- -
Acknowledgements - -

This API is based on Chromium's chrome.downloads API.

- -

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

-
- - diff --git a/files/ru/mozilla/add-ons/webextensions/api/downloads/index.md b/files/ru/mozilla/add-ons/webextensions/api/downloads/index.md new file mode 100644 index 00000000000000..54f3247d5fc504 --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/api/downloads/index.md @@ -0,0 +1,113 @@ +--- +title: downloads +slug: Mozilla/Add-ons/WebExtensions/API/downloads +translation_of: Mozilla/Add-ons/WebExtensions/API/downloads +--- +{{AddonSidebar}} + +Позволяет расширениям взаимодействовать с менеджером загрузки браузера. Этот модуль API можно использовать для загрузки, отмены, приостановки, возобновления загрузки файлов и отображения загруженных файлов в файловом менеджере. + +Для использования этого API вам необходимо указать "downloads" [API permission](/en-US/Add-ons/WebExtensions/manifest.json/permissions#API_permissions) в вашем [manifest.json](/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json) файле. + +## Types + +- {{WebExtAPIRef("downloads.FilenameConflictAction")}} + - : Определяет действия в случае, если имя загружаемого файла конфликтует с именем существующего файла. +- {{WebExtAPIRef("downloads.InterruptReason")}} + - : Defines a set of possible reasons why a download was interrupted. +- {{WebExtAPIRef("downloads.DangerType")}} + - : Defines a set of common warnings of possible dangers associated with downloadable files. +- {{WebExtAPIRef("downloads.State")}} + - : Defines different states that a current download can be in. +- {{WebExtAPIRef("downloads.DownloadItem")}} + - : Represents a downloaded file. +- {{WebExtAPIRef("downloads.StringDelta")}} + - : Represents the difference between two strings. +- {{WebExtAPIRef("downloads.DoubleDelta")}} + - : Represents the difference between two doubles. +- {{WebExtAPIRef("downloads.BooleanDelta")}} + - : Represents the difference between two booleans. +- {{WebExtAPIRef("downloads.DownloadTime")}} + - : Represents the time a download took to complete. +- {{WebExtAPIRef("downloads.DownloadQuery")}} + - : Defines a set of parameters that can be used to search the downloads manager for a specific set of downloads. + +## Functions + +- {{WebExtAPIRef("downloads.download()")}} + - : Downloads a file, given its URL and other optional preferences. +- {{WebExtAPIRef("downloads.search()")}} + - : Queries the {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} available in the browser's downloads manager, and returns those that match the specified search criteria. +- {{WebExtAPIRef("downloads.pause()")}} + - : Pauses a download. +- {{WebExtAPIRef("downloads.resume()")}} + - : Resumes a paused download. +- {{WebExtAPIRef("downloads.cancel()")}} + - : Cancels a download. +- {{WebExtAPIRef("downloads.getFileIcon()")}} + - : Retrieves an icon for the specified download. +- {{WebExtAPIRef("downloads.open()")}} + - : Opens the downloaded file with its associated application. +- {{WebExtAPIRef("downloads.show()")}} + - : Opens the platform's file manager application to show the downloaded file in its containing folder. +- {{WebExtAPIRef("downloads.showDefaultFolder()")}} + - : Opens the platform's file manager application to show the default downloads folder. +- {{WebExtAPIRef("downloads.erase()")}} + - : Erases matching {{WebExtAPIRef("downloads.DownloadItem", "DownloadItems")}} from the browser's download history, without deleting the downloaded files from disk. +- {{WebExtAPIRef("downloads.removeFile()")}} + - : Removes a downloaded file from disk, but not from the browser's download history. +- {{WebExtAPIRef("downloads.acceptDanger()")}} + - : Prompts the user to accept or cancel a dangerous download. +- {{WebExtAPIRef("downloads.drag()")}} + - : Initiates dragging the downloaded file to another application. +- {{WebExtAPIRef("downloads.setShelfEnabled()")}} + - : Enables or disables the gray shelf at the bottom of every window associated with the current browser profile. The shelf will be disabled as long as at least one extension has disabled it. + +## Events + +- {{WebExtAPIRef("downloads.onCreated")}} + - : Fires with the {{WebExtAPIRef("downloads.DownloadItem", "DownloadItem")}} object when a download begins. +- {{WebExtAPIRef("downloads.onErased")}} + - : Fires with the `downloadId` when a download is erased from history. +- {{WebExtAPIRef("downloads.onChanged")}} + - : When any of a {{WebExtAPIRef("downloads.DownloadItem", "DownloadItem")}}'s properties except `bytesReceived` changes, this event fires with the `downloadId` and an object containing the properties that changed. + +## Browser compatibility + +{{Compat}} + +{{WebExtExamples("h2")}} + +> **Примечание:** Это API основано на API Chromium [`chrome.downloads`](https://developer.chrome.com/extensions/downloads). +> +> Информация о совместимости Microsoft Edge предоставлена корпорацией Microsoft и включена здесь под лицензией Creative Commons Attribution 3.0 United States License. + + diff --git a/files/ru/mozilla/add-ons/webextensions/api/index.html b/files/ru/mozilla/add-ons/webextensions/api/index.html deleted file mode 100644 index 84123f6341cec9..00000000000000 --- a/files/ru/mozilla/add-ons/webextensions/api/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: JavaScript APIs -slug: Mozilla/Add-ons/WebExtensions/API -tags: - - Web-расширение - - Расширение -translation_of: Mozilla/Add-ons/WebExtensions/API ---- -
{{AddonSidebar}}
- -
-

WebExtension JavaScript API может быть использован в фоновых скриптах расширения, а так же в любых других документах, поставляемых вместе с расширением, таких как документы во всплывающих окнах после нажатия кнопок активации расширения browser action на панели инструментов или page action в строке адреса, боковой панели, страницах настроек или новых открытых вкладках. Некоторые из этих API могут быть доступны на встраиваемых в страницу скриптах (см. список в руководстве по встраиваемым скриптам).

- -

Для использования отдельных более продвинутых API, необходимо запросить разрешения в manifest.json вашего дополнения.

- -

Вы можете получить доступ к API, используя пространство имён browser:

- -
function logTabs(tabs) {
-  console.log(tabs);
-}
-
-browser.tabs.query({currentWindow: true}, logTabs);
-
- -
-

Многие API выполняются асинхронно, возвращая Promise:

- -
function logCookie(c) {
-  console.log(c);
-}
-
-function logError(e) {
-  console.error(e);
-}
-
-var setCookie = browser.cookies.set(
-  {url: "/"}
-);
-setCookie.then(logCookie, logError);
-
- -
Обратите внимание, что это отличается от расширений Google Chrome, которые используют пространство имён chrome вместо browser и колбэки для асинхронных функций вместо промисов. - -

Для поддержки портирования, реализация Firefox WebExtensions API так же поддерживает пространство имён chrome и использование колбэков. Это позволяет в большинстве случаев не изменять код, изначально написанный для Chrome.

- -

Mozilla так же предоставляет полифил, который позволяет коду, использующему browser и промисы, работать без изменений в Chrome: https://github.com/mozilla/webextension-polyfill.

- -

Microsoft Edge использует пространство имён browser, но ещё не поддерживает, основанный на промисах асинхронный API. В Edge на данный момент асинхронные вызовы API должны использовать колбэки.

- -

Не все браузеры поддерживают все API: детали см. Browser support for JavaScript APIs.

-
- -
{{SubpagesWithSummaries}}
diff --git a/files/ru/mozilla/add-ons/webextensions/api/index.md b/files/ru/mozilla/add-ons/webextensions/api/index.md new file mode 100644 index 00000000000000..272ccd2bdabcbf --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/api/index.md @@ -0,0 +1,52 @@ +--- +title: JavaScript APIs +slug: Mozilla/Add-ons/WebExtensions/API +tags: + - Web-расширение + - Расширение +translation_of: Mozilla/Add-ons/WebExtensions/API +--- +{{AddonSidebar}} + +WebExtension JavaScript API может быть использован в [фоновых скриптах](/ru/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#%D0%A4%D0%BE%D0%BD%D0%BE%D0%B2%D1%8B%D0%B5_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B) расширения, а так же в любых других документах, поставляемых вместе с расширением, таких как документы во всплывающих окнах после нажатия[ ](/en-US/Add-ons/WebExtensions/User_interface_components#Browser_actions)кнопок активации расширения [browser action ](/ru/docs/Mozilla/Add-ons/WebExtensions/user_interface/Browser_action)на панели инструментов[ ](/en-US/Add-ons/WebExtensions/User_interface_components#Browser_actions)или [page action](/ru/docs/Mozilla/Add-ons/WebExtensions/user_interface/Page_actions) в строке адреса, [боковой панели](/ru/docs/Mozilla/Add-ons/WebExtensions/user_interface/Sidebars), [страницах настроек](/ru/docs/Mozilla/Add-ons/WebExtensions/user_interface/Options_pages) или [новых открытых вкладках](/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json/chrome_url_overrides). Некоторые из этих API могут быть доступны на [встраиваемых в страницу скриптах](/ru/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#%D0%92%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B) (см. [список в руководстве по встраиваемым скриптам](/ru/docs/Mozilla/Add-ons/WebExtensions/Content_scripts#WebExtension_APIs)). + +Для использования отдельных более продвинутых API, необходимо [запросить разрешения](/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) в manifest.json вашего дополнения. + +Вы можете получить доступ к API, используя пространство имён `browser`: + +```js +function logTabs(tabs) { + console.log(tabs); +} + +browser.tabs.query({currentWindow: true}, logTabs); +``` + +Многие API выполняются асинхронно, возвращая [`Promise`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise): + +```js +function logCookie(c) { + console.log(c); +} + +function logError(e) { + console.error(e); +} + +var setCookie = browser.cookies.set( + {url: "/"} +); +setCookie.then(logCookie, logError); +``` + +Обратите внимание, что это отличается от расширений Google Chrome, которые используют пространство имён `chrome` вместо `browser` и колбэки для асинхронных функций вместо промисов. + +Для поддержки портирования, реализация Firefox WebExtensions API так же поддерживает пространство имён `chrome` и использование колбэков. Это позволяет в большинстве случаев не изменять код, изначально написанный для Chrome. + +Mozilla так же предоставляет полифил, который позволяет коду, использующему `browser` и промисы, работать без изменений в Chrome: . + +Microsoft Edge использует пространство имён `browser`, но ещё не поддерживает, основанный на промисах асинхронный API. В Edge на данный момент асинхронные вызовы API должны использовать колбэки. + +Не все браузеры поддерживают все API: детали см. [Browser support for JavaScript APIs](/ru/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs). + +{{SubpagesWithSummaries}} diff --git a/files/ru/mozilla/add-ons/webextensions/api/runtime/getmanifest/index.html b/files/ru/mozilla/add-ons/webextensions/api/runtime/getmanifest/index.md similarity index 51% rename from files/ru/mozilla/add-ons/webextensions/api/runtime/getmanifest/index.html rename to files/ru/mozilla/add-ons/webextensions/api/runtime/getmanifest/index.md index 2de559ba5de647..55b03cc17044b8 100644 --- a/files/ru/mozilla/add-ons/webextensions/api/runtime/getmanifest/index.html +++ b/files/ru/mozilla/add-ons/webextensions/api/runtime/getmanifest/index.md @@ -15,46 +15,43 @@ - метод translation_of: Mozilla/Add-ons/WebExtensions/API/runtime/getManifest --- -
{{AddonSidebar()}}
+{{AddonSidebar()}}Получить весь файл [manifest.json](/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json) в виде объекта JavaScript, совместимого с JSON. -
Получить весь файл manifest.json в виде объекта JavaScript, совместимого с JSON.
+## Синтаксис +```js +browser.runtime.getManifest() +``` +### Параметры -

Синтаксис

+Нет. -
browser.runtime.getManifest()
-
+### Возвращаемое значение -

Параметры

+`object` - объект JSON, представляющий манифест. -

Нет.

+## Совместимость с браузерами -

Возвращаемое значение

+{{Compat}} -

object - объект JSON, представляющий манифест.

+## Примеры -

Совместимость с браузерами

-

{{Compat}}

+Получить манифест и вывести его свойство "name": -

Примеры

+```js +var manifest = browser.runtime.getManifest(); +console.log(manifest.name); +``` -

Получить манифест и вывести его свойство "name":

+{{WebExtExamples}} -
var manifest = browser.runtime.getManifest();
-console.log(manifest.name);
+> **Примечание:** Это API основано на API Chromium [`chrome.runtime`](https://developer.chrome.com/extensions/runtime). Эта документация основана на [`runtime.json`](https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/runtime.json) из кода Chromium. +> +> Информация о совместимости Microsoft Edge предоставлена корпорацией Microsoft и включена здесь под лицензией Creative Commons Attribution 3.0 United States License. -

{{WebExtExamples}}

- -
Справка - -

Этот API основан на API Chromium chrome.runtime. Настоящая документация унаследована от runtime.json в коде Chromium.

- -

Данные о совместимости Microsoft Edge предоставлены Корпорацией Microsoft и включены сюда под лицензией Creative Commons Attribution 3.0 United States License.

-
- -