Разрешения хоста
| Тип | Array |
|---|---|
| Обязательно | Нет |
| Версия манифеста | 3 или выше |
| Пример | "host_permissions": [ "*://developer.mozilla.org/*", "*://*.example.org/*" ] |
Используйте ключ host_permissions для запроса доступа к API в расширении, которые считывают или изменяют данные хоста, такие как cookies, webRequest и tabs. Этот ключ представляет собой массив строк, и каждая строка — это запрос на разрешение.
Если вы запрашиваете разрешения с помощью этого ключа, браузер может попросить пользователя предоставить расширению доступ к этим данным хоста во время установки. В любом случае, браузер позволяет пользователю контролировать разрешения хоста расширения после установки: предоставлять или отзывать их по мере необходимости.
Поскольку запрос на предоставление разрешений хоста может повлиять на желание пользователей устанавливать ваше расширение, следует тщательно обдумать запрос разрешений хоста. Например, следует избегать запроса ненужных разрешений хоста и, возможно, предоставить информацию о том, почему вы запрашиваете разрешения хоста в описании вашего расширения в магазине. Статья Запрашивайте нужные разрешения содержит дополнительную информацию о проблемах, которые следует учитывать.
Дополнительную информацию о том, как тестировать и предварительно просматривать запросы на разрешения, см. на сайте Extension Workshop в разделе Тестирование запросов на разрешения.
Разрешения хоста задаются с помощью шаблонов соответствия, и каждый шаблон определяет группу URL-адресов, для которых расширение запрашивает дополнительные привилегии. Например, разрешение хоста может быть "*://developer.mozilla.org/*".
Дополнительные привилегии включают:
- XMLHttpRequest и fetch доступ к этим источникам без ограничений кросс-оригина (хотя и не для запросов из скриптов контента, как это было в манифесте V2).
- возможность считывать метаданные, специфичные для вкладки, без разрешения «вкладки», такие как свойства
url,title, иfavIconUrlобъектовtabs.Tab. - возможность программно вставлять скрипты (используя
tabs.executeScript()) в страницы, предоставляемые из этих источников. - возможность получать события от API
webrequestдля этих хостов. - возможность доступа к cookie для этого хоста с помощью API
cookies, если также включено разрешение API"cookies". - обход защиты от отслеживания для страниц расширения, где хост указан как полный домен или с подстановками.
В расширениях Firefox разрешения хоста предоставляются для их источника, который имеет вид:
moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
где 60a20a9b-1ad4-af49-9b6c-c64c98c37920 — внутренний идентификатор расширения. Расширение может получить этот URL программно, вызвав extension.getURL():
browser.extension.getURL(""); // moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
Пример
"host_permissions": ["*://developer.mozilla.org/*"]
Запрос привилегированного доступа к страницам под developer.mozilla.org.
Совместимость с браузерами
| Рабочий стол | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | |
host_permissions |
88Доступно для использования в манифесте V3 или более поздних версиях. |
88Доступно для использования в манифесте V3 или более поздних версиях. |
109Доступно для использования в манифесте V3 или более поздних версиях. |
? | 74Доступно для использования в манифесте V3 или более поздних версиях. |
15.4Доступно для использования в манифесте V3 или более поздних версиях. |
? | ? | 109Доступно для использования в манифесте V3 или более поздних версиях. |
? | 15.4Доступно для использования в манифесте V3 или более поздних версиях. |
? |
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/host_permissions