Spec-Zone.ru › Web Extensions

дополнительные разрешения

Тип Array
Обязательное Нет
Версия манифеста 2 или выше
Пример
"optional_permissions": [
  "webRequest"
]

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

Ключ permissions перечисляет разрешения, необходимые расширению для установки. В отличие от этого, optional_permissions перечисляет разрешения, которые расширение не требует при установке, но может запросить после установки. Для запроса разрешения используйте API permissions. Запрос разрешения может отобразить диалоговое окно, в котором пользователя попросят предоставить разрешение вашему расширению.

Советы по проектированию запроса на разрешения во время выполнения, чтобы увеличить вероятность их предоставления пользователем, см. в разделе Запрашивать разрешения во время выполнения.

Начиная с Firefox 84, пользователи смогут управлять дополнительными разрешениями из менеджера расширений Firefox. Расширения, использующие дополнительные разрешения, должны отслеживать события API browser.permissions.onAdded и browser.permissions.onRemoved, чтобы знать, когда пользователь предоставляет или отменяет эти разрешения.

Ключ может содержать два вида разрешений: разрешения на хостинг и разрешения на API.

Разрешения на хостинг

Эти разрешения аналогичны разрешениям на хостинг, которые можно указать в ключе permissions.

Примечание: При использовании манифеста V3 или выше:

  • в Chrome разрешения на хостинг должны быть указаны в ключе манифеста host_permission.
  • в Firefox во время предварительного просмотра манифеста V3 хосты могут быть указаны в host_permissions или optional_permissions. Подлежит завершению ошибка 1766026, хосты будут указаны в host_permissions или optional_host_permissions.

Разрешения на API

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

  • activeTab
  • background
  • bookmarks
  • browserSettings
  • clipboardRead
  • clipboardWrite
  • contentSettings
  • contextMenus
  • cookies
  • debugger
  • downloads
  • downloads.open
  • find
  • geolocation
  • history
  • idle
  • management
  • nativeMessaging
  • notifications
  • pageCapture
  • privacy
  • scripting (Манифест V3 или выше)
  • tabHide
  • tabs
  • topSites
  • webNavigation
  • webRequest
  • webRequestBlocking
  • webRequestFilterResponse
  • webRequestFilterResponse.serviceWorkerScript

Обратите внимание, что это подмножество разрешений API, разрешенных в permissions.

Из этого набора следующие разрешения предоставляются без запроса у пользователя:

  • activeTab
  • cookies
  • idle
  • webRequest
  • webRequestBlocking
  • webRequestFilterResponse
  • webRequestFilterResponse.serviceWorkerScript

Пример

 "optional_permissions": ["*://developer.mozilla.org/*"]

В манифесте V2 включите расширение для запроса привилегированного доступа к страницам developer.mozilla.org.

  "optional_permissions": ["tabs"]

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

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

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

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet
optional_permissions Да 79 55 ? Да 14 ? ? 55 ? 15 ?
activeTab Нет Нет 55 ? Нет 14 ? ? 55 ? 15 ?
background Да 79 Нет ? Да Нет ? ? Нет ? Нет ?
bookmarks Да 79 55 ? Да Нет ? ? Нет ? Нет ?
browserSettings Нет Нет 57 ? Нет Нет ? ? 57 ? Нет ?
browsingData Нет Нет 77 ? Нет Нет ? ? Нет ? Нет ?
clipboardRead Да 79 55 ? Да Нет ? ? 55 ? Нет ?
clipboardWrite Да 79 55 ? Да 14 ? ? 55 ? 15 ?
contentSettings Да 79 Нет ? Да Нет ? ? Нет ? Нет ?
contextMenus Да 79 Нет ? Да 14 ? ? Нет ? Нет ?
cookies Да 79 55 ? Да 14 ? ? 55 ? 15 ?
debugger Да 79 Нет ? Да Нет ? ? Нет ? Нет ?
downloads Нет Нет 60 ? Нет Нет ? ? 60 ? Нет ?
downloads_open Нет Нет 60 ? Нет Нет ? ? 60 ? Нет ?
find Нет Нет 57 ? Нет Нет ? ? Нет ? Нет ?
geolocation Нет Нет 55 ? Нет Нет ? ? 55 ? Нет ?
history Да 79 55 ? Да Нет ? ? Нет ? Нет ?
idle Да 79 55 ? Да Нет ? ? 55 ? Нет ?
management Да 79 77 ? Да Нет ? ? Нет ? Нет ?
nativeMessaging Нет Нет 87 ? Нет 14 ? ? Нет ? 15 ?
notifications Да 79 55 ? Да Нет ? ? 55 ? Нет ?
pageCapture Да 79 Нет ? Да Нет ? ? Нет ? Нет ?
pkcs11 Нет Нет 77 ? Нет Нет ? ? Нет ? Нет ?
privacy Да 79 75 ? Да Нет ? ? Нет ? Нет ?
proxy Нет Нет 77 ? Нет Нет ? ? Нет ? Нет ?
sessions Нет Нет 77 ? Нет Нет ? ? Нет ? Нет ?
tabHide Нет Нет 61 ? Нет Нет ? ? Нет ? Нет ?
tabs Да 79 55 ? Да 14 ? ? 55 ? 15 ?
topSites Да 79 55 ? Да Нет ? ? 55 ? Нет ?
webNavigation Да 79 55 ? Да 14 ? ? 55 ? 15 ?
webRequest Да 79 55 ? Да 14 ? ? 55 ? Нет ?
webRequestBlocking Да 79 55 ? Да Нет ? ? 55 ? Нет ?
webRequestFilterResponse Нет Нет 110 ? Нет Нет ? ? 110 ? Нет ?
webRequestFilterResponse_serviceWorkerScript Нет Нет 95 ? Нет Нет ? ? 95 ? Нет ?

© 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/optional_permissions

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API