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. |
"search" |
Zapewnia rozszerzeniu dostęp do interfejsu API chrome.search. |
"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. |