aboutsummaryrefslogtreecommitdiff
path: root/files/ru/mozilla/add-ons/webextensions/manifest.json
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
commit074785cea106179cb3305637055ab0a009ca74f2 (patch)
treee6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/mozilla/add-ons/webextensions/manifest.json
parentda78a9e329e272dedb2400b79a3bdeebff387d47 (diff)
downloadtranslated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz
translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2
translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip
initial commit
Diffstat (limited to 'files/ru/mozilla/add-ons/webextensions/manifest.json')
-rw-r--r--files/ru/mozilla/add-ons/webextensions/manifest.json/background/index.html115
-rw-r--r--files/ru/mozilla/add-ons/webextensions/manifest.json/content_security_policy/index.html117
-rw-r--r--files/ru/mozilla/add-ons/webextensions/manifest.json/description/index.html44
-rw-r--r--files/ru/mozilla/add-ons/webextensions/manifest.json/icons/index.html80
-rw-r--r--files/ru/mozilla/add-ons/webextensions/manifest.json/index.html139
-rw-r--r--files/ru/mozilla/add-ons/webextensions/manifest.json/manifest_version/index.html45
-rw-r--r--files/ru/mozilla/add-ons/webextensions/manifest.json/name/index.html44
-rw-r--r--files/ru/mozilla/add-ons/webextensions/manifest.json/permissions/index.html193
-rw-r--r--files/ru/mozilla/add-ons/webextensions/manifest.json/version/index.html49
9 files changed, 826 insertions, 0 deletions
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
+---
+<div>{{AddonSidebar}}</div>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <th scope="row" style="width: 30%;">Тип</th>
+ <td><code>Object</code></td>
+ </tr>
+ <tr>
+ <th scope="row">Обязательный</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Пример</th>
+ <td>
+ <pre class="brush: json no-line-numbers">
+"background": {
+ "scripts": ["background.js"]
+}</pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p><span id="result_box" lang="ru"><span>Используйте ключ <code>background</code> для включения одного или нескольких фоновых сценариев </span></span><span lang="ru"><span>и, возможно, фоновой страницы в ваше расширение.</span></span></p>
+
+<p><span id="result_box" lang="ru"><span>Фоновые сценарии </span></span>—<span lang="ru"><span> это место для размещения кода, который должен поддерживать долгосрочное состояние или выполнять долгосрочные операции, независимо от времени жизни каких-либо конкретных веб-страниц или окон браузера.</span></span></p>
+
+<p><span id="result_box" lang="ru"><span>Фоновые сценарии загружаются сразу при загрузке расширения и остаются загруженными до тех пор, пока расширение не будет отключено или удалено.</span> <span>Вы можете использовать любой API-интерфейс WebExtension в сценарии, если вы запросили необходимые</span></span> <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">права (permissions)</a>.</p>
+
+<p><span id="result_box" lang="ru"><span>Дополнительную информацию см. В разделе «Справочные страницы»</span></span> в статье <a href="/ru/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_pages">Анатомия расширения</a>.</p>
+
+<p>Ключ <code>background</code> это объект, у которого есть два следующих необязательных свойства:</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td><code>scripts</code></td>
+ <td>
+ <p>Массив строк, каждая из которых представляет собой путь к файлу JavaScript. Путь к этим файлам указывают относительно папки, в которой находится файл manifest.json. Это скрипты, которые будут выполняться в фоновой странице расширения.</p>
+
+ <p>У этих скриптов общий глобальный контекст объекта <code>window</code>.</p>
+
+ <p>Скрипты загружаются в том порядке, в котором они указаны в массиве.</p>
+
+ <p>Если вы указали значения с помощью свойства <code>scripts</code>, будет создана пустая фоновая страница, в которой будут работать все эти скрипты.</p>
+
+ <div class="note">
+ <p><strong>Примечание:</strong> Если вы хотите добавить скрипт из удалённого расположения с помощью тега <code>&lt;script&gt;</code> (например, <code>&lt;script src = "https://code.jquery.com/jquery-1.7.1.min.js"&gt;</code>), может также понадобиться изменить значение ключа <code><a href="/ru/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy">content_security_policy</a></code> в файле manifest.json вашего расширения.</p>
+ </div>
+
+ <div class="note">
+ <p><strong>Примечание:</strong> В Firefox до версии 50, когда открыт отладчик, скрипты не всегда загружаются в том порядке, в котором они расположены в массиве. Чтобы обойти этот баг, можно использовать свойство <code>page</code>  (вместо <code>scripts</code>) и добавить фоновые скрипты с помощью тегов <code>&lt;script&gt;</code> в странице HTML. Этот баг починен в Firefox 50. Начиная с этой версии, скрипты всегда загружаются в том порядке, в котором они следуют в массиве.</p>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td><code>page</code></td>
+ <td>
+ <p>Если вам нужно какое-нибудь содержимое HTML-страницы, можно определить свою фоновую страницу с помощью свойства <code>page</code>. Это строка, которая представляет собой путь к файлу документа HTML, заданный относительно расположения файла manifest.json. Этот файл HTML должен находиться внутри вашего расширения.</p>
+
+ <p>Если используется это свойство, то уже нельзя добавлять скрипты с помощью свойства <code>scripts</code>. Вместо этого нужно добавлять скрипты в страницу — точно таким же образом, как в обычную веб-страницу.</p>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Ключ <code>background</code> также может содержать следующее необязательное свойство:</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td><code>persistent</code></td>
+ <td>
+ <p>Двоичное значение (<code>Boolean</code>).</p>
+
+ <ul>
+ <li><code>true</code> определяет, что фоновая страница должна храниться в памяти с момента, когда загрузилось расширение или запустился браузер и до того, как расширение будет удалено или выключено, или браузер будет закрыт (то есть фоновая страница постоянна).</li>
+ <li><code>false</code> определяет, что фоновая страница может быть выгружена из памяти во время бездействия и создана заново, когда будет нужна. Такие фоновые страницы часто называются «Страницами Событий» (Event Pages) — потому, что они загружаются в память только для того, чтобы обрабатывать события, для которых в фоновых скриптах назначены функции-обработчики. Зарегистрированные события остаются когда фоновая страница выгружена из памяти, но остальные значения сбрасываются. Если нужно хранить постоянные данные при использовании страницы событий, используйте <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage API</a>.</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre class="brush: json no-line-numbers"> "background": {
+ "scripts": ["jquery.js", "my-background.js"]
+ }</pre>
+
+<p>Загрузит два фоновых скрипта.</p>
+
+<pre class="brush: json"> "background": {
+ "page": "my-background.html"
+ }</pre>
+
+<p>Загрузит файл фоновой страницы.</p>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">Таблица совместимости сгенерирована из структурированных данных. Если вы хотите дополнить эту информацию, пожалуйста, посетите <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам pull request.</p>
+
+<p>{{Compat("webextensions.manifest.background", 10)}}</p>
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
+---
+<div>{{AddonSidebar}}</div>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <th scope="row" style="width: 30%;">Тип</th>
+ <td><code>Строка</code></td>
+ </tr>
+ <tr>
+ <th scope="row">Обязателен</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Пример</th>
+ <td>
+ <pre class="brush: json no-line-numbers">
+"content_security_policy": "default-src 'self'"</pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Политика защиты содержимого применяется к расширениям автоматически. Изначальная политика защиты содержимого ограничивает источники, из которых расширение может загружать <a href="/ru/docs/Web/HTML/Element/script">&lt;script&gt;</a> и <a href="/ru/docs/Web/HTML/Element/object">&lt;object&gt;</a> ресурсы, а так же препятствует потенциально опасным практикам, например использованию <code><a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/eval">eval()</a></code>. Смотрите <a href="/ru/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy#Изначальные_правила_по_защите_содержимого">изначальные правила защиты содержимого</a>, чтобы узнать о конкретных последствиях применения изначальных правил.</p>
+
+<p>Ключ <code>"content_security_policy"</code> в manifest.json используется для ослабления или ужесточения политики защиты содержимого. Значения для этого ключа устанавливаются в точно таком же виде, как и для Content-Security-Policy HTTP заголовка. Смотрите <a href="/ru/docs/Web/HTTP/CSP">Использование политики содержимого</a> для получения общего представления о синтаксисе для написания правил политики.</p>
+
+<p>Примеры использования ключа могут включать в себя:</p>
+
+<ul>
+ <li>Разрешение на загрузку не запакованных в расширение скриптов и объектов, предоставляя их URL в {{CSP("script-src")}} и {{CSP("object-src")}} директивах.</li>
+ <li>Разрешение на выполнение встраиваемых скриптов, <a href="/ru/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#Unsafe_inline_script">предоставляя hash скрипта в <code>"script-src"</code> директиве</a>.</li>
+ <li>Разрешение на использование <code>eval()</code> и похожих функций, добавляя <code>'unsafe-eval'</code> в {{CSP("script-src")}} директиву.</li>
+ <li>Ограничение допускаемых источников загрузки для других видов контента, например картинок или файлов стилей, используя соответствующие <a href="/ru/docs/Web/HTTP/Headers/Content-Security-Policy">директивы</a>.</li>
+</ul>
+
+<p>При написании правил по защите содержимого, вы имеете некоторые ограничения:</p>
+
+<ul>
+ <li>Правило должно включать в себя {{CSP("script-src")}} и  {{CSP("object-src")}} директивы, и {{CSP("script-src")}} директива должна включать ключевое слово <code>'self'</code>.</li>
+ <li>Удалённые источники должны иметь <code>https:</code> схему.</li>
+ <li>Удалённые источники не должны определяться через универсальный символ <code>*</code> со следующим за ним <a href="https://publicsuffix.org/list/">доменным публичным суффиксом</a> (например "*.co.uk" и "*.blogspot.com" являются не разрешёнными значениями, но "*.foo.blogspot.com" разрешёно).</li>
+ <li>У всех источников должен быть определён хост.</li>
+ <li>Единственные позволенные схемы источников: <code>blob:</code>, <code>filesystem:</code>, <code>moz-extension:</code> и <code>https:</code>.</li>
+ <li>Единственные позволенные <a href="/ru/docs/Web/HTTP/Headers/Content-Security-Policy/default-src#Sources">ключевые слова</a>: <code>'none'</code>, <code>'self'</code> и <code>'unsafe-eval'</code>.</li>
+</ul>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Работающие_примеры">Работающие примеры</h3>
+
+<p>Разрешает загрузку скриптов из "https://example.com": <sup>(<em>смотрите примечание</em> <a href="#exampleNote_1">1</a>)</sup></p>
+
+<pre class="brush: json no-line-numbers">"content_security_policy": "script-src 'self' https://example.com; object-src 'self'"</pre>
+
+<p>Разрешает загрузку скриптов из любого субдомена "jquery.com":</p>
+
+<pre class="brush: json no-line-numbers">"content_security_policy": "script-src 'self' https://*.jquery.com; object-src 'self'"</pre>
+
+<p>Разрешает использование <a href="/ru/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy#eval()_и_товарищи"><code>eval()</code> и его товарищей</a>:</p>
+
+<pre class="brush: json no-line-numbers">"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';"</pre>
+
+<p>Разрешает встроить скрипт: <code>"&lt;script&gt;alert('Hello, world.');&lt;/script&gt;"</code>:</p>
+
+<pre class="brush: json no-line-numbers">"content_security_policy": "script-src 'self' 'sha256-qznLcsROx4GACP2dm0UCKCzCG+HiZ1guq6ZZDob/Tng='; object-src 'self'"</pre>
+
+<p>Оставляет изначальные правила, но так же требует, чтобы могли загружаться только изображения, запакованные вместе с расширением:</p>
+
+<pre class="brush: json no-line-numbers">"content_security_policy": "script-src 'self'; object-src 'self'; img-src 'self'"</pre>
+
+<p>Разрешает загрузку только тех ресурсов, которые были запакованы вместе с расширением:</p>
+
+<pre class="brush: json no-line-numbers">"content_security_policy": "default-src 'self'"
+</pre>
+
+<h3 id="Недопустимые_примеры">Недопустимые примеры</h3>
+
+<p>Политика, не включающая <code>"object-src"</code> директиву:</p>
+
+<pre class="brush: json no-line-numbers">"content_security_policy": "script-src 'self' https://*.jquery.com;"</pre>
+
+<p>Политика, не включающая ключевое слово <code>"self"</code> в <code>"script-src"</code> директиве:</p>
+
+<pre class="brush: json no-line-numbers">"content_security_policy": "script-src https://*.jquery.com; object-src 'self'"</pre>
+
+<p>Использование отличной от <code>https</code> схемы для загрузки удалённых ресурсов:</p>
+
+<pre class="brush: json no-line-numbers">"content_security_policy": "script-src 'self' http://code.jquery.com; object-src 'self'"</pre>
+
+<p>Использование универсального символа в связке с публичным доменным суффиксом:</p>
+
+<pre class="brush: json no-line-numbers">"content_security_policy": "script-src 'self' https://*.blogspot.com; object-src 'self'"</pre>
+
+<p>Указание схемы без хоста:</p>
+
+<pre class="brush: json no-line-numbers">"content_security_policy": "script-src 'self' https:; object-src 'self'"</pre>
+
+<p>Использование неподдерживаемого ключевого слова <code>'unsafe-inline'</code>:</p>
+
+<pre class="brush: json no-line-numbers">"content_security_policy": "script-src 'self' 'unsafe-inline'; object-src 'self'"</pre>
+
+<p><span id="exampleNote_1">1. <em>Примечание: Работающие примеры демонстрируют правильное написание политики защиты содержимого. Тем не менее, расширения с политикой, включающей ключевые словами 'unsafe-eval', 'unsafe-inline', разрешающей загрузку удалённых скриптов и ресурсов, а так же blob файлов не будут допущены к распространению на addons.mozilla.org из-за значительных проблем с безопасностью.</em></span></p>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.manifest.content_security_policy")}}</p>
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
+---
+<div>{{AddonSidebar}}</div>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <th scope="row" style="width: 30%;">Тип</th>
+ <td><code>String</code></td>
+ </tr>
+ <tr>
+ <th scope="row">Обязательный</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Пример</th>
+ <td>
+ <pre class="brush: json no-line-numbers">
+"description": "Заменяет картинки на картинки с котиками."</pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Краткое описание дополнения, предназначенное для показа в интерфейсе браузера.</p>
+
+<p>Это <a href="/ru/Add-ons/WebExtensions/Internationalization#Internationalizing_manifest.json">локализуемое свойство</a>.</p>
+
+<h2 id="Пример">Пример</h2>
+
+<pre class="brush: json no-line-numbers">"description": "Заменяет картинки на картинки с котиками."</pre>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.manifest.description")}}</p>
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
+---
+<div>{{AddonSidebar}}</div>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <th scope="row" style="width: 30%;">Тип</th>
+ <td><code>Object</code></td>
+ </tr>
+ <tr>
+ <th scope="row">Обязательный</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Пример</th>
+ <td>
+ <pre class="brush: json">
+"icons": {
+ "48": "icon.png",
+ "96": "icon@2x.png"
+}</pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Ключ <code>icons</code> определяет, какие иконки (значки) будет использовать ваше дополнение. Эти иконки будут использоваться при показе вашего дополнения в менеджерах компонентов, таких как Менеджер Дополнений.</p>
+
+<p>Он содержит информацию вида ключ-значение со следующими данными: размер изображения в пикселях и путь к соответствующему изображению относительно директории, в которой содержится дополнение.</p>
+
+<p>Если иконки не предоставлены с помощью этого ключа <code>icons</code>, вместо них будет использоваться стандартная иконка для расширений.</p>
+
+<p>Вы должны указать по крайней мере одну главную иконку, в идеале размером 48х48 пикселей. Эта иконка будет использоваться по умолчанию в Менеджере Дополнений. Конечно, можно добавить иконки любого размера, и Firefox постарается найти лучшую из них для показа в разных компонентах.</p>
+
+<p>Firefox учитывает разрешение экрана, когда выбирает иконку. Чтобы получить наилучший результат на мониторах с большим разрешением, использующих технологию Retina display, добавьте для каждой иконки версию с размерами в два раза больше.</p>
+
+<h2 id="Пример">Пример</h2>
+
+<p>Ключи в объекте icons определяют размеры иконок в пикселях, значения - относительный путь к файлам с изображениями. Этот пример содержит иконку размером 48х48 пикселей и увеличенную версию для мониторов высокого разрешения.</p>
+
+<pre class="brush: json">"icons": {
+ "48": "icon.png",
+ "96": "icon@2x.png"
+}</pre>
+
+<h2 id="SVG">SVG</h2>
+
+<p>В качестве иконки можно использовать файл SVG. Тогда браузер будет масштабировать иконку так, чтобы она подходила к компоненту, в котором она используется. Но есть два предостережения:</p>
+
+<ol>
+ <li>В файле изображения должен быть определён viewBox. Например:
+ <pre class="brush: html">&lt;svg viewBox="0 0 48 48" width="48" height="48" ...</pre>
+ </li>
+ <li>Даже в том случае, если используется всего один файл, нужно определить его для разных размеров иконки в манифесте. Например:
+ <pre class="brush: json">"icons": {
+ "48": "icon.svg",
+ "96": "icon.svg"
+}</pre>
+ </li>
+</ol>
+
+<div class="note">
+<p>Если вы используете программу Inkscape или подобную ей для создания SVG, сохраняйте изображение как "Простой SVG". Иначе Firefox может запутаться во множестве специальных пространств имён и не отобразить картинку.</p>
+</div>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">Таблица совместимости на этой странице сгенерирована из структурированных данных. Если вы хотите дополнить эти данные, пожалуйста, навестите <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам pull request.</p>
+
+<p>{{Compat("webextensions.manifest.icons")}}</p>
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
+---
+<p>{{AddonSidebar}}</p>
+
+<div class="blockIndicator note">
+<p>В этой статье описан файл manifest.json для веб-расширений. Если Вы ищете информацию о manifest.json для Прогрессивных веб-приложений (PWAs), смотрите статью <a href="/ru/docs/Web/Манифест">Манифест веб-приложения</a>.</p>
+</div>
+
+<p>Файл <code>manifest.json</code> это единственный файл, который обязательно должен быть в каждом расширении, использующем API Веб-расширения (WebExtension APIs).</p>
+
+<p>Используя manifest.json, Вы определяете базовые метаданные о расширении, такие как имя и версия. Также можно определить некоторые аспекты функционала (такие, как фоновые скрипты, контент скрипты и действия браузера).</p>
+
+<p>Это файл в формате <a href="ru/docs/Словарь/JSON">JSON</a>, но в нём можно использовать комментарии, каждая строка которых должна начинаться с "<code>//</code>".</p>
+
+<h2 id="Список_полей_manifest.json">Список полей manifest.json</h2>
+
+<p>Поддерживаемые <code>manifest.json</code> поля перечислены ниже:</p>
+
+<div class="twocolumns">{{ListSubpages ("/en-US/Add-ons/WebExtensions/manifest.json") }}</div>
+
+<h3 class="index" id="Примечания_о_полях_manifest.json">Примечания о полях manifest.json</h3>
+
+<ul>
+ <li>Поля <code>"manifest_version"</code>, <code>"version"</code> и <code>"name"</code> являются обязательными.</li>
+ <li>Поле <code>"default_locale"</code> обязательно, если есть папка <code>"_locales"</code>, иначе его нужно опустить.</li>
+ <li>Поле <code>"browser_specific_settings"</code> не поддерживается Google Chrome.</li>
+</ul>
+
+<h3 id="Доступ_к_полям_manifest.json_во_время_выполнения">Доступ к полям manifest.json во время выполнения</h3>
+
+<p>C помощью функции JavaScript {{WebExtAPIRef("runtime.getManifest()")}} можно получить доступ к файлу манифеста расширения:</p>
+
+<pre class="brush: js; no-line-numbers">browser.runtime.getManifest().version;</pre>
+
+<h2 id="Пример">Пример</h2>
+
+<p>В следующем блоке показан основной синтаксис некоторых часто используемых полей манифеста.</p>
+
+<div class="blockIndicator note">
+<p><strong>Примечание:</strong> Этот пример не рассчитан для того, чтобы его скопировали и вставили в файл реального проекта. Выбор нужных полей зависит от особенностей создаваемого расширения.</p>
+</div>
+
+<p>Если нужны примеры готовых расширений, смотрите <a href="/ru/docs/Mozilla/Add-ons/WebExtensions/Examples">Примеры расширений</a>.</p>
+
+<pre class="brush: json;">{
+ "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"]
+}</pre>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p>Для полного обзора всех полей манифеста и их содержимого, смотрите <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_compatibility_for_manifest.json">полную таблицу совместимости <code>manifest.json</code></a> с браузерами.</p>
+
+<div class="hidden">Таблица совместимости сгенерирована из структурированных данных. Если Вы хотите дополнить эти данные, пожалуйста, посмотрите <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам pull request.</div>
+
+<p>{{Compat("webextensions.manifest")}}</p>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<p>{{WebExtAPIRef("permissions")}} JavaScript API</p>
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
+---
+<p>{{AddonSidebar}}</p>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <th scope="row" style="width: 30%;">Тип</th>
+ <td><code>Number</code></td>
+ </tr>
+ <tr>
+ <th scope="row">Обязательный</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">Пример</th>
+ <td>
+ <pre class="brush: json">
+"manifest_version": 2</pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Этот ключ определяет версию файла "manifest.json", использующуюся в этом дополнении.</p>
+
+<p>В настоящее время всегда должен быть 2</p>
+
+<h2 id="Пример">Пример</h2>
+
+<pre class="brush: json">"manifest_version": 2
+</pre>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">Таблица совместимости на этой странице сгенерирована из структурированных данных. Если вы хотите дополнить эти данные, пожалуйста, посетите <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам pull request.</p>
+
+<p>{{Compat("webextensions.manifest.manifest_version")}}</p>
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
+---
+<div>{{AddonSidebar}}</div>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <th scope="row" style="width: 30%;">Тип</th>
+ <td><code>String</code></td>
+ </tr>
+ <tr>
+ <th scope="row">Обязательный</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">Пример</th>
+ <td>
+ <pre class="brush: json">
+"name": "My Extension"</pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Имя расширения. Используется для идентификации расширения в интерфейсе браузера и на сайтах, подобных addons.mozilla.org.</p>
+
+<p>Это <a href="/en-US/Add-ons/WebExtensions/Internationalization#Internationalizing_manifest.json">локализуемое свойство</a>.</p>
+
+<h2 id="Пример">Пример</h2>
+
+<pre class="brush: json">"name": "My Extension"</pre>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">Таблица совместимости на этой странице сгенерирована из структурированных данных. Если вы хотите дополнить эти данные, пожалуйста, посетите <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам pull request.</p>
+
+<p>{{Compat("webextensions.manifest.name")}}</p>
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
+---
+<p>{{AddonSidebar}}</p>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <th scope="row" style="width: 30%;">Тип</th>
+ <td><code>Массив</code></td>
+ </tr>
+ <tr>
+ <th scope="row">Обязателен</th>
+ <td>Нет</td>
+ </tr>
+ <tr>
+ <th scope="row">Пример</th>
+ <td>
+ <pre class="brush: json; no-line-numbers">
+"permissions": [
+ "*://developer.mozilla.org/*",
+ "webRequest"
+]</pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Используйте ключ<span style='font-family: "Times New Roman","serif"; font-size: 12.0pt; line-height: 115%;'> </span> <code>permissions</code> для получения дополнительных возможностей для вашего расширения. Значением ключа является массив строк, каждая из которых представляет собой запрос на какие-либо полномочия.</p>
+
+<p>При объявлении запросов полномочий с помощью этого ключа, браузер проинформирует пользователей, о том какие полномочия необходимы расширению во время его установки, и задаст вопрос, согласны ли они выдать их расширению. Браузер так же даёт пользователям возможность изучить полномочия расширения уже после установки. Так как требование дополнительных полномочий может повлиять на желание пользователя использовать ваше расширение, решение использования конкретного функционала может стоить тщательного рассмотрения. К примеру, есть смысл избегать запрашивания необязательных полномочий, и предоставлять информацию о том, зачем вашему расширению нужны какие-либо полномочия в описании расширения. Более подробная информация о проблемах, которые вам стоит рассмотреть касательно этой темы, предоставлена в статье <a href="/ru/docs/Mozilla/Add-ons/WebExtensions/Request_the_right_permissions">Запрашивание правильных полномочий</a>.</p>
+
+<p>Значение ключа может содержать три вида запросов полномочий:</p>
+
+<ul>
+ <li>Запрос на полномочия для хоста</li>
+ <li>Запрос на API полномочия</li>
+ <li>Запрос на activeTab полномочия</li>
+</ul>
+
+<h2 id="Запрос_полномочий_для_хоста">Запрос полномочий для хоста</h2>
+
+<p>Запрос на полномочия для хоста объявляется через <a href="https://developer.mozilla.org/ru/docs/Mozilla/Add-ons/WebExtensions/Match_patterns">шаблоны совпадения</a>, где каждый шаблон определяет группу URL, при посещении которых расширение будет иметь эти дополнительные полномочия. Например, запрос на полномочия для хоста может быть задан подобной строкой <code>"*://developer.mozilla.org/*"</code>.</p>
+
+<p>Полномочия для хоста включают:</p>
+
+<ul>
+ <li>Возможность выполнять <a href="/ru/docs/Web/API/XMLHttpRequest">XMLHttpRequest</a> и <a href="/ru/docs/Web/API/Fetch_API">fetch</a> запросы на ресурсы, которые имеют заданный origin, не испытывая cross-origin ограничений (даже для запросов, выполняемых из встраиваемого скрипта)</li>
+ <li>Возможность встраивать скрипты программным путём, используя <a href="/ru/docs/Mozilla/Add-ons/WebExtensions/API/tabs/executeScript">tabs.executeScript</a>, на веб-страницах загруженных с заданного origin</li>
+ <li>Возможность обрабатывать события из <a href="/ru/docs/Mozilla/Add-ons/WebExtensions/API/webRequest">webRequest</a> API для заданных хостов</li>
+ <li>Доступ к сookies на заданных хостах, используя <a href="/ru/Add-ons/WebExtensions/API/cookies">cookies</a> API, при условии получения дополнительного "cookies" API полномочия.</li>
+ <li>Возможность обходить защиту от слежения, при условии полностью указанного хоста, без использования универсального символа <code>*</code>. Не будет работать с <code>&lt;all_urls&gt;</code>.</li>
+</ul>
+
+<p>В Firefox, начиная с версии 56, расширения автоматически получают полномочия для своего собственного хоста, который имеет вид:</p>
+
+<pre><code>moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/</code></pre>
+
+<p>где <code>60a20a9b-1ad4-af49-9b6c-c64c98c37920</code> - внутреннее ID расширения. Расширение может получить это URL программным путём, через вызов метода <a href="/ru/docs/Mozilla/Add-ons/WebExtensions/API/extension/getURL">extension.getURL()</a>:</p>
+
+<pre class="brush: js;">browser.extension.getURL("");
+// moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
+</pre>
+
+<h2 id="Запрос_на_API_полномочия">Запрос на API полномочия</h2>
+
+<p>Запрос на API полномочия объявляется через ключевые слова, каждое из которых представляет собой название <a href="/ru/docs/Mozilla/Add-ons/WebExtensions/API">WebExtension API</a>, доступ к которому необходим расширению.</p>
+
+<p>Следующие ключевые слова доступны на данный момент:</p>
+
+<ul>
+ <li><code>activeTab</code></li>
+ <li><code>alarms</code></li>
+ <li><code>background</code></li>
+ <li><code>bookmarks</code></li>
+ <li><code>browserSettings</code></li>
+ <li><code>browsingData</code></li>
+ <li><code>clipboardRead</code></li>
+ <li><code>clipboardWrite</code></li>
+ <li><code>contentSettings</code></li>
+ <li><code>contextMenus</code></li>
+ <li><code>contextualIdentities</code></li>
+ <li><code>cookies</code></li>
+ <li><code>debugger</code></li>
+ <li><code>dns</code></li>
+ <li><code>downloads</code></li>
+ <li><code>downloads.open</code></li>
+ <li><code>find</code></li>
+ <li><code>geolocation</code></li>
+ <li><code>history</code></li>
+ <li><code>identity</code></li>
+ <li><code>idle</code></li>
+ <li><code>management</code></li>
+ <li><code>menus</code></li>
+ <li><code>menus.overrideContext</code></li>
+ <li><code>nativeMessaging</code></li>
+ <li><code>notifications</code></li>
+ <li><code>pageCapture</code></li>
+ <li><code>pkcs11</code></li>
+ <li><code>privacy</code></li>
+ <li><code>proxy</code></li>
+ <li><code>search</code></li>
+ <li><code>sessions</code></li>
+ <li><code>storage</code></li>
+ <li><code>tabHide</code></li>
+ <li><code>tabs</code></li>
+ <li><code>theme</code></li>
+ <li><code>topSites</code></li>
+ <li><code>unlimitedStorage</code></li>
+ <li><code>webNavigation</code></li>
+ <li><code>webRequest</code></li>
+ <li><code>webRequestBlocking</code></li>
+</ul>
+
+<p>В большинстве случаев полномочие просто делает возможным доступ к определённому API, за исключением следующих ситуаций:</p>
+
+<ul>
+ <li><code>tabs</code> предоставляет доступ к <a href="/ru/Add-ons/WebExtensions/API/tabs">привилегированным частям <code>tabs</code> API</a>: <code>Tab.url</code>, <code>Tab.title</code>, and <code>Tab.faviconUrl</code>. В Firefox, вам так же понадобятся <code>tabs</code> полномочия, если вы собираетесь использовать <code>url</code> ключ в параметре <code>queryInfo</code> для <code><a href="/ru/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query">tabs.query()</a></code> метода. Весь остальной <code>tabs</code> API доступен без запрашивания каких-либо полномочий.</li>
+ <li><code>webRequestBlocking</code> позволяет вам использовать "blocking" аргумент, для возможности <a href="/ru/Add-ons/WebExtensions/API/WebRequest">изменять и отменять запросы</a>.</li>
+ <li><code>downloads.open</code> позволяет использовать {{WebExtAPIRef("downloads.open()")}} API.</li>
+ <li><code>tabHide</code> позволяет использовать {{WebExtAPIRef("tabs.hide()")}} API.</li>
+</ul>
+
+<h2 id="Запрос_на_activeTab_полномочия">Запрос на activeTab полномочия</h2>
+
+<p>Этот вид запроса объявляется через ключевое слово <code>"activeTab"</code>. <code>activeTab</code> полномочия предоставляются расширению на активной в данный момент вкладке, и вступают в эффект только в момент, когда пользователь взаимодействует с расширением.</p>
+
+<p>"Взаимодействие пользователя" включает:</p>
+
+<ul>
+ <li>Пользователь нажимает на кнопку расширения на панели инструментов или адресной строке</li>
+ <li>Пользователь взаимодействует с контекстным меню расширения</li>
+ <li>Пользователь нажимает комбинацию клавиш, ассоциированную с расширением</li>
+</ul>
+
+<p>activeTab полномочия включают:</p>
+
+<ul>
+ <li>Возможность программно встраивать JavaScript или CSS на страницу, используя <code><a href="/ru/Add-ons/WebExtensions/API/tabs/executeScript">browser.tabs.executeScript</a></code> и <code><a href="/ru/Add-ons/WebExtensions/API/tabs/insertCSS">browser.tabs.insertCSS</a></code></li>
+ <li>Получение доступа к привилегированным частям tabs API для активной вкладки: <code>Tab.url</code>, <code>Tab.title</code> и <code>Tab.faviconUrl</code>.</li>
+</ul>
+
+<p>Цель этих полномочий – позволить расширению выполнять наиболее распространенные сценарии работы, без необходимости выдавать ему более серьёзные привилегии, так как большинство расширений задумано для выполнения какой-либо работы на активной вкладке после взаимодействия с пользователем. Например, представьте расширение, которое встраивает скрипт на текущую страницу, после того как пользователь нажимает на кнопку расширения на панели инструментов. Если бы <code>activeTab</code> полномочий не существовало, расширению бы пришлось запрашивать <code>&lt;all_urls&gt;</code>. Но они бы давали расширению намного больше привилегий, чем ему было бы необходимо: расширение могло бы встраивать скрипты на любую вкладку и в любой момент, когда пожелает.</p>
+
+<p>Заметьте, что вы сможете иметь доступ к привилегированному tab API, только на момент взаимодействия расширения с пользователем, и пока вкладка не изменила своё состояние. То есть расширение перестанет иметь данные привилегии при изменении адреса страницы или каком-либо другом событии с вкладкой.</p>
+
+<p>Обычно вкладкой, получающей <code>activeTab</code> полномочия, является активная в данный момент вкладка, за исключением одного случая. <code><a href="/ru/docs/Mozilla/Add-ons/WebExtensions/API/menus">menus</a></code> API позволяет расширению создавать элементы контекстного меню, которые будут появляться непосредственно при нажатии на вкладку (элемент на панели вкладок, при нажатии на который изменяется активная вкладка). Если пользователь вызывает контекстное меню на этом элементе, тогда <code>activeTab</code> полномочия выдадутся для вкладки, по которой было произведено нажатие, несмотря на то, что она могла бы не является активной ({{bug(1446956)}} начиная с Firefox версии 63).</p>
+
+<h2 id="Доступ_к_буферу_обмена">Доступ к буферу обмена</h2>
+
+<p>Два полномочия предоставляют расширению привилегии для взаимодействия с буфером обмена:</p>
+
+<ul>
+ <li><code>clipboardWrite</code>: для записи в буфер обмена с помощью {{DOMxRef("Clipboard.write()")}}, {{DOMxRef("Clipboard.writeText()")}}, <code>document.execCommand("copy")</code> или <code>document.execCommand("cut")</code></li>
+ <li><code>clipboardRead</code>: для чтения из буфера обмена с помощью {{DOMxRef("Clipboard.read()")}}, {{DOMxRef("Clipboard.readText()")}} или <code>document.execCommand("paste")</code></li>
+</ul>
+
+<p>Смотрите <a href="/ru/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard">Взаимодействие с буфером обмена</a> для более подробной информации.</p>
+
+<h2 id="Неограниченное_хранилище">Неограниченное хранилище</h2>
+
+<p>Полномочие <code>unlimitedStorage</code>:</p>
+
+<ul>
+ <li>Позволяет расширению превышать любые ограничения размера хранимой информации для {{WebExtAPIRef("storage.local")}} API</li>
+ <li>В Firefox, позволяет расширению создавать <a href="/ru/docs/Web/API/IndexedDB_API/Browser_storage_limits_and_eviction_criteria#Firefox_specifics">"persistent" базу данных IndexedDB</a>, не запрашивая разрешения у пользователя в момент её создания.</li>
+</ul>
+
+<h2 id="Примеры">Примеры</h2>
+
+<pre class="brush: json no-line-numbers"> "permissions": ["*://developer.mozilla.org/*"]</pre>
+
+<p>Запрашивает полномочия для хостов, имеющих developer.mozilla.org в их URL.</p>
+
+<pre class="brush: json no-line-numbers"> "permissions": ["tabs"]</pre>
+
+<p>Запрашивает доступ к привилегированным частям <code>tabs</code> API.</p>
+
+<pre class="brush: json no-line-numbers"> "permissions": ["*://developer.mozilla.org/*", "tabs"]</pre>
+
+<p>Запрашивает несколько типов полномочий из примеров выше.</p>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.manifest.permissions")}}</p>
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
+---
+<p>{{AddonSidebar}}</p>
+
+<table class="fullwidth-table standard-table">
+ <tbody>
+ <tr>
+ <th scope="row" style="width: 30%;">Тип</th>
+ <td><code>String</code></td>
+ </tr>
+ <tr>
+ <th scope="row">Обязательный</th>
+ <td>Да</td>
+ </tr>
+ <tr>
+ <th scope="row">Пример</th>
+ <td>
+ <pre class="brush: json no-line-numbers">
+"version": "0.1"</pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Версия дополнения, отформатированная как числа и символы ASCII, разделенные точками. Подробнее о формате версий смотрите страницу <a href="https://developer.mozilla.org/ru/docs/Toolkit_version_format">Version format</a>.</p>
+
+<p>Обратите внимание, что <a href="https://developer.chrome.com/extensions/manifest/version">синтаксис ключа <code>version</code> для Chrome</a> более ограниченный, чем у Firefox:</p>
+
+<ul>
+ <li>значения <code>version</code> которые действительны для Chrome, всегда будут действительны для Firefox</li>
+ <li>значения <code>version</code> которые действительны для Firefox, могут быть не действительны для Chrome</li>
+</ul>
+
+<h2 id="Пример">Пример</h2>
+
+<pre class="brush: json no-line-numbers">"version": "0.1"</pre>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("webextensions.manifest.version")}}</p>