Deklarowanie uprawnień

Aby używać większości interfejsów API chrome.*, interfejsów API, rozszerzenie lub aplikacja musi zadeklarować swoje intencje w polu „permissions” w pliku manifestu. Każde uprawnienie może być jednym z ciągów znaków na liście znanych ciągów (np. „geolokalizacja”) lub wzorcem dopasowania, który zapewnia dostęp do co najmniej 1 hosta. Uprawnienia pomagają ograniczyć szkody, jeśli rozszerzenie lub aplikacja zostaną zainfekowane złośliwym oprogramowaniem. Niektóre uprawnienia są też wyświetlane użytkownikom przed instalacją, jak opisano w sekcji Ostrzeżenia o uprawnieniach.

Jeśli interfejs API wymaga zadeklarowania uprawnienia w pliku manifestu, w jego dokumentacji znajdziesz instrukcje, jak to zrobić. Na przykład na stronie Pamięć dowiesz się, jak zadeklarować uprawnienie „pamięć”.

Oto przykład sekcji uprawnień w pliku manifestu:

"permissions": [
  "tabs",
  "bookmarks",
  "http://www.blogger.com/",
  "http://*.google.com/",
  "unlimitedStorage"
],

W tabeli poniżej znajdziesz obecnie dostępne uprawnienia:

Uprawnienie Opis
"activeTab" Wysyła prośbę o przyznanie rozszerzeniu uprawnień zgodnie ze specyfikacją activeTab.
"alarms" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.alarms.
"background"

Powoduje, że Chrome uruchamia się wcześniej i zamyka później, dzięki czemu aplikacje i rozszerzenia mogą działać dłużej.

Jeśli zainstalowana aplikacja hostowana, aplikacja spakowana lub rozszerzenie ma uprawnienie „background”, Chrome uruchamia się (niewidocznie) zaraz po zalogowaniu się użytkownika na komputerze – zanim użytkownik uruchomi Chrome. Uprawnienie „background” sprawia też, że Chrome działa (nawet po zamknięciu ostatniego okna), dopóki użytkownik nie zamknie przeglądarki.

Uwaga: wyłączone aplikacje i rozszerzenia są traktowane tak, jakby nie były zainstalowane.

Uprawnienia „background” używa się zwykle ze stroną działającą w tle, stroną zdarzenia lub (w przypadku aplikacji hostowanych) oknem działającym w tle.

"bookmarks" Zapewnia rozszerzeniu dostęp do interfejsu chrome.bookmarks API.
"browsingData" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.browsingData.
"certificateProvider" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.certificateProvider.
"clipboardRead" Wymagane, jeśli rozszerzenie lub aplikacja używa document.execCommand('paste').
"clipboardWrite" Wskazuje, że rozszerzenie lub aplikacja używa document.execCommand('copy') lub document.execCommand('cut'). To uprawnienie jest wymagane w przypadku aplikacji hostowanych. Zalecamy je w przypadku rozszerzeń i aplikacji spakowanych.
"contentSettings" Zapewnia rozszerzeniu dostęp do interfejsu chrome.contentSettings API.
"contextMenus" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.contextMenus.
"cookies" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.cookies.
"debugger" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.debugger.
"declarativeContent" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.declarativeContent.
"declarativeNetRequest" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.declarativeNetRequest.
"declarativeNetRequestFeedback" Przyznaje rozszerzeniu dostęp do zdarzeń i metod w interfejsie API chrome.declarativeNetRequest, które zwracają informacje o dopasowanych regułach deklaratywnych.
"declarativeWebRequest" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.declarativeWebRequest.
"desktopCapture" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.desktopCapture.
"documentScan" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.documentScan.
"downloads" Zapewnia rozszerzeniu dostęp do interfejsu chrome.downloads API.
"enterprise.deviceAttributes" Zapewnia rozszerzeniu dostęp do interfejsu chrome.enterprise.deviceAttributes API.
"enterprise.hardwarePlatform" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.enterprise.hardwarePlatform.
"enterprise.networkingAttributes" Zapewnia rozszerzeniu dostęp do interfejsu chrome.enterprise.networkingAttributes API.
"enterprise.platformKeys" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.enterprise.platformKeys.
"experimental" Wymagane, jeśli rozszerzenie lub aplikacja używa interfejsów API chrome.experimental.* .
"fileBrowserHandler" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.fileBrowserHandler.
"fileSystemProvider" Zapewnia rozszerzeniu dostęp do interfejsu chrome.fileSystemProvider API.
"fontSettings" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.fontSettings.
"gcm" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.gcm.
"geolocation" Zezwala rozszerzeniu lub aplikacji na korzystanie z interfejsu API geolokalizacji bez pytania użytkownika o zgodę.
"history" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.history.
"identity" Zapewnia rozszerzeniu dostęp do interfejsu chrome.identity API.
"idle" Zapewnia rozszerzeniu dostęp do interfejsu chrome.idle API.
"loginState" Zapewnia rozszerzeniu dostęp do interfejsu chrome.loginState API.
"management" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.management.
"nativeMessaging" Zapewnia rozszerzeniu dostęp do interfejsu API do obsługi wiadomości natywnych.
"notifications" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.notifications.
"pageCapture" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.pageCapture.
"platformKeys" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.platformKeys.
"power" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.power.
"printerProvider" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.printerProvider.
"printing" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.printing.
"printingMetrics" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.printingMetrics.
"privacy" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.privacy.
"processes" Zapewnia rozszerzeniu dostęp do interfejsu chrome.processes API.
"proxy" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.proxy.
"scripting" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.scripting.
"sessions" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.sessions.
"signedInDevices" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.signedInDevices.
"storage" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.storage.
"system.cpu" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.system.cpu.
"system.display" Zapewnia rozszerzeniu dostęp do interfejsu chrome.system.display API.
"system.memory" Zapewnia rozszerzeniu dostęp do interfejsu chrome.system.memory API.
"system.storage" Zapewnia rozszerzeniu dostęp do interfejsu chrome.system.storage API.
"tabCapture" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.tabCapture.
"tabGroups" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.tabGroups.
"tabs" Zapewnia rozszerzeniu dostęp do uprzywilejowanych pól obiektów Tab używanych przez kilka interfejsów API, w tym chrome.tabs i chrome.windows. W wielu przypadkach rozszerzenie nie musi deklarować uprawnienia "tabs", aby korzystać z tych interfejsów API.
"topSites" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.topSites.
"tts" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.tts.
"ttsEngine" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.ttsEngine.
"unlimitedStorage" Zapewnia nieograniczony limit miejsca na dane po stronie klienta, takie jak bazy danych i pliki w pamięci lokalnej. Bez tego uprawnienia rozszerzenie lub aplikacja może korzystać z maksymalnie 5 MB pamięci lokalnej.
Uwaga: to uprawnienie dotyczy tylko bazy danych Web SQL i pamięci podręcznej aplikacji (patrz problem 58985). Obecnie nie działa też z subdomenami ze znakami wieloznacznymi, takimi jak http://*.example.com.
"vpnProvider" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.vpnProvider.
"webNavigation" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.webNavigation.
"webRequest" Zapewnia rozszerzeniu dostęp do interfejsu API chrome.webRequest.
"webRequestBlocking" Wymagane, jeśli rozszerzenie używa interfejsu chrome.webRequest API w sposób blokujący.