Чтобы использовать большинство API и функций расширений , вы должны объявить намерение вашего расширения в полях разрешений манифеста . Расширения могут запрашивать следующие категории разрешений, указанные с помощью соответствующих ключей манифеста:
-
"permissions" - Содержит элементы из списка известных строк . Изменения могут вызвать предупреждение .
-
"optional_permissions" - Предоставляется пользователем во время выполнения, а не во время установки.
-
"content_scripts.matches" - Содержит один или несколько шаблонов соответствия , которые позволяют сценариям содержимого внедряться на один или несколько хостов. Изменения могут вызвать предупреждение .
-
"host_permissions" - Содержит один или несколько шаблонов соответствия , которые предоставляют доступ к одному или нескольким хостам. Изменения могут вызвать предупреждение .
-
"optional_host_permissions" - Предоставляется пользователем во время выполнения, а не во время установки.
Разрешения помогают ограничить ущерб, если ваше расширение будет скомпрометировано вредоносным ПО. Некоторые предупреждения о разрешениях отображаются пользователям для получения их согласия перед установкой или во время выполнения, как подробно описано в разделе «Разрешения с предупреждениями» .
Рассмотрите возможность использования дополнительных разрешений везде, где это позволяет функциональность вашего расширения, чтобы предоставить пользователям информированный контроль над доступом к ресурсам и данным.
Если API требует разрешения, в его документации объясняется, как его объявить. Пример см. в разделе API хранилища .
Манифест
Ниже приведен пример раздела разрешений файла манифеста :
манифест.json:
{
"name": "Permissions Extension",
...
"permissions": [
"activeTab",
"contextMenus",
"storage"
],
"optional_permissions": [
"topSites",
],
"host_permissions": [
"https://www.developer.chrome.com/*"
],
"optional_host_permissions":[
"https://*/*",
"http://*/*"
],
...
"manifest_version": 3
}
Разрешения хоста
Разрешения хоста позволяют расширениям взаимодействовать с шаблонами соответствия URL-адресов. Некоторым API-интерфейсам Chrome требуются разрешения хоста в дополнение к собственным разрешениям API, которые описаны на каждой справочной странице. Вот несколько примеров:
- Выполняйте запросы
fetch()от работника службы расширения и страниц расширения. - Прочитайте и запросите конфиденциальные свойства вкладки (url, заголовок и favIconUrl) с помощью API
chrome.tabs. - Программно внедрите сценарий содержимого .
- Отслеживайте и управляйте сетевыми запросами с помощью API
chrome.webRequest. - Получите доступ к файлам cookie с помощью API
chrome.cookies. - Перенаправляйте и изменяйте запросы и заголовки ответов с помощью API
chrome.declarativeNetRequest.
Разрешения с предупреждениями
Когда расширение запрашивает несколько разрешений и многие из них отображают предупреждения при установке, пользователь увидит список предупреждений, как в следующем примере: