From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../manifest.json/background/index.html | 115 ++++++++++++ .../content_security_policy/index.html | 117 +++++++++++++ .../manifest.json/description/index.html | 44 +++++ .../webextensions/manifest.json/icons/index.html | 80 +++++++++ .../add-ons/webextensions/manifest.json/index.html | 139 +++++++++++++++ .../manifest.json/manifest_version/index.html | 45 +++++ .../webextensions/manifest.json/name/index.html | 44 +++++ .../manifest.json/permissions/index.html | 193 +++++++++++++++++++++ .../webextensions/manifest.json/version/index.html | 49 ++++++ 9 files changed, 826 insertions(+) create mode 100644 files/ru/mozilla/add-ons/webextensions/manifest.json/background/index.html create mode 100644 files/ru/mozilla/add-ons/webextensions/manifest.json/content_security_policy/index.html create mode 100644 files/ru/mozilla/add-ons/webextensions/manifest.json/description/index.html create mode 100644 files/ru/mozilla/add-ons/webextensions/manifest.json/icons/index.html create mode 100644 files/ru/mozilla/add-ons/webextensions/manifest.json/index.html create mode 100644 files/ru/mozilla/add-ons/webextensions/manifest.json/manifest_version/index.html create mode 100644 files/ru/mozilla/add-ons/webextensions/manifest.json/name/index.html create mode 100644 files/ru/mozilla/add-ons/webextensions/manifest.json/permissions/index.html create mode 100644 files/ru/mozilla/add-ons/webextensions/manifest.json/version/index.html (limited to 'files/ru/mozilla/add-ons/webextensions/manifest.json') diff --git a/files/ru/mozilla/add-ons/webextensions/manifest.json/background/index.html b/files/ru/mozilla/add-ons/webextensions/manifest.json/background/index.html new file mode 100644 index 0000000000..876f151d60 --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/manifest.json/background/index.html @@ -0,0 +1,115 @@ +--- +title: ключ background +slug: Mozilla/Add-ons/WebExtensions/manifest.json/background +tags: + - WebExtensions + - Веб-расширения + - Дополнения + - Манифест + - Расширения +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/background +--- +
{{AddonSidebar}}
+ + + + + + + + + + + + + + + + +
ТипObject
ОбязательныйНет
Пример +
+"background": {
+  "scripts": ["background.js"]
+}
+
+ +

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

+ +

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

+ +

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

+ +

Дополнительную информацию см. В разделе «Справочные страницы» в статье Анатомия расширения.

+ +

Ключ background это объект, у которого есть два следующих необязательных свойства:

+ + + + + + + + + + + + +
scripts +

Массив строк, каждая из которых представляет собой путь к файлу JavaScript. Путь к этим файлам указывают относительно папки, в которой находится файл manifest.json. Это скрипты, которые будут выполняться в фоновой странице расширения.

+ +

У этих скриптов общий глобальный контекст объекта window.

+ +

Скрипты загружаются в том порядке, в котором они указаны в массиве.

+ +

Если вы указали значения с помощью свойства scripts, будет создана пустая фоновая страница, в которой будут работать все эти скрипты.

+ +
+

Примечание: Если вы хотите добавить скрипт из удалённого расположения с помощью тега <script> (например, <script src = "https://code.jquery.com/jquery-1.7.1.min.js">), может также понадобиться изменить значение ключа content_security_policy в файле manifest.json вашего расширения.

+
+ +
+

Примечание: В Firefox до версии 50, когда открыт отладчик, скрипты не всегда загружаются в том порядке, в котором они расположены в массиве. Чтобы обойти этот баг, можно использовать свойство page  (вместо scripts) и добавить фоновые скрипты с помощью тегов <script> в странице HTML. Этот баг починен в Firefox 50. Начиная с этой версии, скрипты всегда загружаются в том порядке, в котором они следуют в массиве.

+
+
page +

Если вам нужно какое-нибудь содержимое HTML-страницы, можно определить свою фоновую страницу с помощью свойства page. Это строка, которая представляет собой путь к файлу документа HTML, заданный относительно расположения файла manifest.json. Этот файл HTML должен находиться внутри вашего расширения.

+ +

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

+
+ +

Ключ background также может содержать следующее необязательное свойство:

+ + + + + + + + +
persistent +

Двоичное значение (Boolean).

+ +
    +
  • true определяет, что фоновая страница должна храниться в памяти с момента, когда загрузилось расширение или запустился браузер и до того, как расширение будет удалено или выключено, или браузер будет закрыт (то есть фоновая страница постоянна).
  • +
  • false определяет, что фоновая страница может быть выгружена из памяти во время бездействия и создана заново, когда будет нужна. Такие фоновые страницы часто называются «Страницами Событий» (Event Pages) — потому, что они загружаются в память только для того, чтобы обрабатывать события, для которых в фоновых скриптах назначены функции-обработчики. Зарегистрированные события остаются когда фоновая страница выгружена из памяти, но остальные значения сбрасываются. Если нужно хранить постоянные данные при использовании страницы событий, используйте storage API.
  • +
+
+ +

Примеры

+ +
  "background": {
+    "scripts": ["jquery.js", "my-background.js"]
+  }
+ +

Загрузит два фоновых скрипта.

+ +
  "background": {
+    "page": "my-background.html"
+  }
+ +

Загрузит файл фоновой страницы.

+ +

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

+ + + +

{{Compat("webextensions.manifest.background", 10)}}

diff --git a/files/ru/mozilla/add-ons/webextensions/manifest.json/content_security_policy/index.html b/files/ru/mozilla/add-ons/webextensions/manifest.json/content_security_policy/index.html new file mode 100644 index 0000000000..0efe1fe0d5 --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/manifest.json/content_security_policy/index.html @@ -0,0 +1,117 @@ +--- +title: content_security_policy +slug: Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy +tags: + - Web-расширение + - Безопасность + - Расширение +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy +--- +
{{AddonSidebar}}
+ + + + + + + + + + + + + + + + +
ТипСтрока
ОбязателенНет
Пример +
+"content_security_policy": "default-src 'self'"
+
+ +

Политика защиты содержимого применяется к расширениям автоматически. Изначальная политика защиты содержимого ограничивает источники, из которых расширение может загружать <script> и <object> ресурсы, а так же препятствует потенциально опасным практикам, например использованию eval(). Смотрите изначальные правила защиты содержимого, чтобы узнать о конкретных последствиях применения изначальных правил.

+ +

Ключ "content_security_policy" в manifest.json используется для ослабления или ужесточения политики защиты содержимого. Значения для этого ключа устанавливаются в точно таком же виде, как и для Content-Security-Policy HTTP заголовка. Смотрите Использование политики содержимого для получения общего представления о синтаксисе для написания правил политики.

+ +

Примеры использования ключа могут включать в себя:

+ + + +

При написании правил по защите содержимого, вы имеете некоторые ограничения:

+ + + +

Примеры

+ +

Работающие примеры

+ +

Разрешает загрузку скриптов из "https://example.com": (смотрите примечание 1)

+ +
"content_security_policy": "script-src 'self' https://example.com; object-src 'self'"
+ +

Разрешает загрузку скриптов из любого субдомена "jquery.com":

+ +
"content_security_policy": "script-src 'self' https://*.jquery.com; object-src 'self'"
+ +

Разрешает использование eval() и его товарищей:

+ +
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';"
+ +

Разрешает встроить скрипт: "<script>alert('Hello, world.');</script>":

+ +
"content_security_policy": "script-src 'self' 'sha256-qznLcsROx4GACP2dm0UCKCzCG+HiZ1guq6ZZDob/Tng='; object-src 'self'"
+ +

Оставляет изначальные правила, но так же требует, чтобы могли загружаться только изображения, запакованные вместе с расширением:

+ +
"content_security_policy": "script-src 'self'; object-src 'self'; img-src 'self'"
+ +

Разрешает загрузку только тех ресурсов, которые были запакованы вместе с расширением:

+ +
"content_security_policy": "default-src 'self'"
+
+ +

Недопустимые примеры

+ +

Политика, не включающая "object-src" директиву:

+ +
"content_security_policy": "script-src 'self' https://*.jquery.com;"
+ +

Политика, не включающая ключевое слово "self" в "script-src" директиве:

+ +
"content_security_policy": "script-src https://*.jquery.com; object-src 'self'"
+ +

Использование отличной от https схемы для загрузки удалённых ресурсов:

+ +
"content_security_policy": "script-src 'self' http://code.jquery.com; object-src 'self'"
+ +

Использование универсального символа в связке с публичным доменным суффиксом:

+ +
"content_security_policy": "script-src 'self' https://*.blogspot.com; object-src 'self'"
+ +

Указание схемы без хоста:

+ +
"content_security_policy": "script-src 'self' https:; object-src 'self'"
+ +

Использование неподдерживаемого ключевого слова 'unsafe-inline':

+ +
"content_security_policy": "script-src 'self' 'unsafe-inline'; object-src 'self'"
+ +

1. Примечание: Работающие примеры демонстрируют правильное написание политики защиты содержимого. Тем не менее, расширения с политикой, включающей ключевые словами 'unsafe-eval', 'unsafe-inline', разрешающей загрузку удалённых скриптов и ресурсов, а так же blob файлов не будут допущены к распространению на addons.mozilla.org из-за значительных проблем с безопасностью.

+ +

Browser compatibility

+ + + +

{{Compat("webextensions.manifest.content_security_policy")}}

diff --git a/files/ru/mozilla/add-ons/webextensions/manifest.json/description/index.html b/files/ru/mozilla/add-ons/webextensions/manifest.json/description/index.html new file mode 100644 index 0000000000..46c7310329 --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/manifest.json/description/index.html @@ -0,0 +1,44 @@ +--- +title: description +slug: Mozilla/Add-ons/WebExtensions/manifest.json/description +tags: + - Reference + - WebExtensions + - description +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/description +--- +
{{AddonSidebar}}
+ + + + + + + + + + + + + + + + +
ТипString
ОбязательныйНет
Пример +
+"description": "Заменяет картинки на картинки с котиками."
+
+ +

Краткое описание дополнения, предназначенное для показа в интерфейсе браузера.

+ +

Это локализуемое свойство.

+ +

Пример

+ +
"description": "Заменяет картинки на картинки с котиками."
+ +

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

+ + + +

{{Compat("webextensions.manifest.description")}}

diff --git a/files/ru/mozilla/add-ons/webextensions/manifest.json/icons/index.html b/files/ru/mozilla/add-ons/webextensions/manifest.json/icons/index.html new file mode 100644 index 0000000000..4352adba81 --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/manifest.json/icons/index.html @@ -0,0 +1,80 @@ +--- +title: ключ icons +slug: Mozilla/Add-ons/WebExtensions/manifest.json/icons +tags: + - Icons + - WebExtensions + - Веб-расширение + - Дополнения + - Расширения +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/icons +--- +
{{AddonSidebar}}
+ + + + + + + + + + + + + + + + +
ТипObject
ОбязательныйНет
Пример +
+"icons": {
+  "48": "icon.png",
+  "96": "icon@2x.png"
+}
+
+ +

Ключ icons определяет, какие иконки (значки) будет использовать ваше дополнение. Эти иконки будут использоваться при показе вашего дополнения в менеджерах компонентов, таких как Менеджер Дополнений.

+ +

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

+ +

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

+ +

Вы должны указать по крайней мере одну главную иконку, в идеале размером 48х48 пикселей. Эта иконка будет использоваться по умолчанию в Менеджере Дополнений. Конечно, можно добавить иконки любого размера, и Firefox постарается найти лучшую из них для показа в разных компонентах.

+ +

Firefox учитывает разрешение экрана, когда выбирает иконку. Чтобы получить наилучший результат на мониторах с большим разрешением, использующих технологию Retina display, добавьте для каждой иконки версию с размерами в два раза больше.

+ +

Пример

+ +

Ключи в объекте icons определяют размеры иконок в пикселях, значения - относительный путь к файлам с изображениями. Этот пример содержит иконку размером 48х48 пикселей и увеличенную версию для мониторов высокого разрешения.

+ +
"icons": {
+  "48": "icon.png",
+  "96": "icon@2x.png"
+}
+ +

SVG

+ +

В качестве иконки можно использовать файл SVG. Тогда браузер будет масштабировать иконку так, чтобы она подходила к компоненту, в котором она используется. Но есть два предостережения:

+ +
    +
  1. В файле изображения должен быть определён viewBox. Например: +
    <svg viewBox="0 0 48 48" width="48" height="48" ...
    +
  2. +
  3. Даже в том случае, если используется всего один файл, нужно определить его для разных размеров иконки в манифесте. Например: +
    "icons": {
    +  "48": "icon.svg",
    +  "96": "icon.svg"
    +}
    +
  4. +
+ +
+

Если вы используете программу Inkscape или подобную ей для создания SVG, сохраняйте изображение как "Простой SVG". Иначе Firefox может запутаться во множестве специальных пространств имён и не отобразить картинку.

+
+ +

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

+ + + +

{{Compat("webextensions.manifest.icons")}}

diff --git a/files/ru/mozilla/add-ons/webextensions/manifest.json/index.html b/files/ru/mozilla/add-ons/webextensions/manifest.json/index.html new file mode 100644 index 0000000000..661cf31e12 --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/manifest.json/index.html @@ -0,0 +1,139 @@ +--- +title: manifest.json +slug: Mozilla/Add-ons/WebExtensions/manifest.json +tags: + - WebExtensions + - manifest.json + - Веб-расширения + - Дополнения + - Обзор + - Расширения +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json +--- +

{{AddonSidebar}}

+ +
+

В этой статье описан файл manifest.json для веб-расширений. Если Вы ищете информацию о manifest.json для Прогрессивных веб-приложений (PWAs), смотрите статью Манифест веб-приложения.

+
+ +

Файл manifest.json это единственный файл, который обязательно должен быть в каждом расширении, использующем API Веб-расширения (WebExtension APIs).

+ +

Используя manifest.json, Вы определяете базовые метаданные о расширении, такие как имя и версия. Также можно определить некоторые аспекты функционала (такие, как фоновые скрипты, контент скрипты и действия браузера).

+ +

Это файл в формате JSON, но в нём можно использовать комментарии, каждая строка которых должна начинаться с "//".

+ +

Список полей manifest.json

+ +

Поддерживаемые manifest.json поля перечислены ниже:

+ +
{{ListSubpages ("/en-US/Add-ons/WebExtensions/manifest.json") }}
+ +

Примечания о полях manifest.json

+ + + +

Доступ к полям manifest.json во время выполнения

+ +

C помощью функции JavaScript {{WebExtAPIRef("runtime.getManifest()")}} можно получить доступ к файлу манифеста расширения:

+ +
browser.runtime.getManifest().version;
+ +

Пример

+ +

В следующем блоке показан основной синтаксис некоторых часто используемых полей манифеста.

+ +
+

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

+
+ +

Если нужны примеры готовых расширений, смотрите Примеры расширений.

+ +
{
+  "browser_specific_settings": {
+    "gecko": {
+      "id": "addon@example.com",
+      "strict_min_version": "42.0"
+    }
+  },
+
+  "background": {
+    "scripts": ["jquery.js", "my-background.js"],
+  },
+
+  "browser_action": {
+    "default_icon": {
+      "19": "button/geo-19.png",
+      "38": "button/geo-38.png"
+    },
+    "default_title": "Whereami?",
+    "default_popup": "popup/geo.html"
+  },
+
+  "commands": {
+    "toggle-feature": {
+      "suggested_key": {
+        "default": "Ctrl+Shift+Y",
+        "linux": "Ctrl+Shift+U"
+      },
+      "description": "Send a 'toggle-feature' event"
+    }
+  },
+
+  "content_security_policy": "script-src 'self' https://example.com; object-src 'self'",
+
+  "content_scripts": [
+    {
+      "exclude_matches": ["*://developer.mozilla.org/*"],
+      "matches": ["*://*.mozilla.org/*"],
+      "js": ["borderify.js"]
+    }
+  ],
+
+  "default_locale": "en",
+
+  "description": "...",
+
+  "icons": {
+    "48": "icon.png",
+    "96": "icon@2x.png"
+  },
+
+  "manifest_version": 2,
+
+  "name": "...",
+
+  "page_action": {
+    "default_icon": {
+      "19": "button/geo-19.png",
+      "38": "button/geo-38.png"
+    },
+    "default_title": "Whereami?",
+    "default_popup": "popup/geo.html"
+  },
+
+  "permissions": ["webNavigation"],
+
+  "version": "0.1",
+
+  "user_scripts": {
+    "api_script": "apiscript.js",
+  },
+
+  "web_accessible_resources": ["images/my-image.png"]
+}
+ +

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

+ +

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

+ + + +

{{Compat("webextensions.manifest")}}

+ +

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

+ +

{{WebExtAPIRef("permissions")}} JavaScript API

diff --git a/files/ru/mozilla/add-ons/webextensions/manifest.json/manifest_version/index.html b/files/ru/mozilla/add-ons/webextensions/manifest.json/manifest_version/index.html new file mode 100644 index 0000000000..1cf7875003 --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/manifest.json/manifest_version/index.html @@ -0,0 +1,45 @@ +--- +title: ключ manifest_version +slug: Mozilla/Add-ons/WebExtensions/manifest.json/manifest_version +tags: + - Reference + - WebExtensions + - manifest_version +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/manifest_version +--- +

{{AddonSidebar}}

+ + + + + + + + + + + + + + + + +
ТипNumber
ОбязательныйДа
Пример +
+"manifest_version": 2
+
+ +

Этот ключ определяет версию файла "manifest.json", использующуюся в этом дополнении.

+ +

В настоящее время всегда должен быть 2

+ +

Пример

+ +
"manifest_version": 2
+
+ +

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

+ + + +

{{Compat("webextensions.manifest.manifest_version")}}

diff --git a/files/ru/mozilla/add-ons/webextensions/manifest.json/name/index.html b/files/ru/mozilla/add-ons/webextensions/manifest.json/name/index.html new file mode 100644 index 0000000000..59c50eafdd --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/manifest.json/name/index.html @@ -0,0 +1,44 @@ +--- +title: ключ name +slug: Mozilla/Add-ons/WebExtensions/manifest.json/name +tags: + - Reference + - WebExtensions + - name +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/name +--- +
{{AddonSidebar}}
+ + + + + + + + + + + + + + + + +
ТипString
ОбязательныйДа
Пример +
+"name": "My Extension"
+
+ +

Имя расширения. Используется для идентификации расширения в интерфейсе браузера и на сайтах, подобных addons.mozilla.org.

+ +

Это локализуемое свойство.

+ +

Пример

+ +
"name": "My Extension"
+ +

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

+ + + +

{{Compat("webextensions.manifest.name")}}

diff --git a/files/ru/mozilla/add-ons/webextensions/manifest.json/permissions/index.html b/files/ru/mozilla/add-ons/webextensions/manifest.json/permissions/index.html new file mode 100644 index 0000000000..bfe2556a86 --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/manifest.json/permissions/index.html @@ -0,0 +1,193 @@ +--- +title: permissions +slug: Mozilla/Add-ons/WebExtensions/manifest.json/permissions +tags: + - Web-расширение + - Полномочия + - Расширение +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/permissions +--- +

{{AddonSidebar}}

+ + + + + + + + + + + + + + + + +
ТипМассив
ОбязателенНет
Пример +
+"permissions": [
+  "*://developer.mozilla.org/*",
+  "webRequest"
+]
+
+ +

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

+ +

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

+ +

Значение ключа может содержать три вида запросов полномочий:

+ + + +

Запрос полномочий для хоста

+ +

Запрос на полномочия для хоста объявляется через шаблоны совпадения, где каждый шаблон определяет группу URL, при посещении которых расширение будет иметь эти дополнительные полномочия. Например, запрос на полномочия для хоста может быть задан подобной строкой "*://developer.mozilla.org/*".

+ +

Полномочия для хоста включают:

+ + + +

В Firefox, начиная с версии 56, расширения автоматически получают полномочия для своего собственного хоста, который имеет вид:

+ +
moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
+ +

где 60a20a9b-1ad4-af49-9b6c-c64c98c37920 - внутреннее ID расширения. Расширение может получить это URL программным путём, через вызов метода extension.getURL():

+ +
browser.extension.getURL("");
+// moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
+
+ +

Запрос на API полномочия

+ +

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

+ +

Следующие ключевые слова доступны на данный момент:

+ + + +

В большинстве случаев полномочие просто делает возможным доступ к определённому API, за исключением следующих ситуаций:

+ + + +

Запрос на activeTab полномочия

+ +

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

+ +

"Взаимодействие пользователя" включает:

+ + + +

activeTab полномочия включают:

+ + + +

Цель этих полномочий – позволить расширению выполнять наиболее распространенные сценарии работы, без необходимости выдавать ему более серьёзные привилегии, так как большинство расширений задумано для выполнения какой-либо работы на активной вкладке после взаимодействия с пользователем. Например, представьте расширение, которое встраивает скрипт на текущую страницу, после того как пользователь нажимает на кнопку расширения на панели инструментов. Если бы activeTab полномочий не существовало, расширению бы пришлось запрашивать <all_urls>. Но они бы давали расширению намного больше привилегий, чем ему было бы необходимо: расширение могло бы встраивать скрипты на любую вкладку и в любой момент, когда пожелает.

+ +

Заметьте, что вы сможете иметь доступ к привилегированному tab API, только на момент взаимодействия расширения с пользователем, и пока вкладка не изменила своё состояние. То есть расширение перестанет иметь данные привилегии при изменении адреса страницы или каком-либо другом событии с вкладкой.

+ +

Обычно вкладкой, получающей activeTab полномочия, является активная в данный момент вкладка, за исключением одного случая. menus API позволяет расширению создавать элементы контекстного меню, которые будут появляться непосредственно при нажатии на вкладку (элемент на панели вкладок, при нажатии на который изменяется активная вкладка). Если пользователь вызывает контекстное меню на этом элементе, тогда activeTab полномочия выдадутся для вкладки, по которой было произведено нажатие, несмотря на то, что она могла бы не является активной ({{bug(1446956)}} начиная с Firefox версии 63).

+ +

Доступ к буферу обмена

+ +

Два полномочия предоставляют расширению привилегии для взаимодействия с буфером обмена:

+ + + +

Смотрите Взаимодействие с буфером обмена для более подробной информации.

+ +

Неограниченное хранилище

+ +

Полномочие unlimitedStorage:

+ + + +

Примеры

+ +
 "permissions": ["*://developer.mozilla.org/*"]
+ +

Запрашивает полномочия для хостов, имеющих developer.mozilla.org в их URL.

+ +
  "permissions": ["tabs"]
+ +

Запрашивает доступ к привилегированным частям tabs API.

+ +
  "permissions": ["*://developer.mozilla.org/*", "tabs"]
+ +

Запрашивает несколько типов полномочий из примеров выше.

+ +

Browser compatibility

+ + + +

{{Compat("webextensions.manifest.permissions")}}

diff --git a/files/ru/mozilla/add-ons/webextensions/manifest.json/version/index.html b/files/ru/mozilla/add-ons/webextensions/manifest.json/version/index.html new file mode 100644 index 0000000000..42892c82af --- /dev/null +++ b/files/ru/mozilla/add-ons/webextensions/manifest.json/version/index.html @@ -0,0 +1,49 @@ +--- +title: ключ version +slug: Mozilla/Add-ons/WebExtensions/manifest.json/version +tags: + - Reference + - WebExtensions + - version +translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/version +--- +

{{AddonSidebar}}

+ + + + + + + + + + + + + + + + +
ТипString
ОбязательныйДа
Пример +
+"version": "0.1"
+
+ +

Версия дополнения, отформатированная как числа и символы ASCII, разделенные точками. Подробнее о формате версий смотрите страницу Version format.

+ +

Обратите внимание, что синтаксис ключа version для Chrome более ограниченный, чем у Firefox:

+ + + +

Пример

+ +
"version": "0.1"
+ +

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

+ + + +

{{Compat("webextensions.manifest.version")}}

-- cgit v1.2.3-54-g00ecf