Deklarowanie uprawnień

Aby korzystać z większości funkcji Chrome.* Interfejsy API, rozszerzenia i aplikacje muszą deklarować swoje intencje w polu „uprawnienia” manifest. Każde uprawnienie może być albo na liście znanych ciągów znaków (np. „geolokalizacja”), albo wzorcem dopasowania, który daje dostęp do co najmniej jednego hosta. Uprawnienia pomagają ograniczyć straty, jeśli rozszerzenie lub aplikacja zostanie zainfekowana przez złośliwe oprogramowanie. Niektóre uprawnienia są wyświetlane użytkownikom przed instalacją, zgodnie z opisem w sekcji Ostrzeżenia dotyczące uprawnień.

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

Oto przykład części pliku manifestu dotyczącej uprawnień:

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

W tabeli poniżej znajdziesz listę obecnie dostępnych uprawnień:

Uprawnienie Opis
"activeTab" Prośba o przyznanie rozszerzeniu uprawnień zgodnie ze specyfikacją activeTab.
"alarms" Daje rozszerzeniu dostęp do interfejsu API chrome.alarms.
"background"

Wczesne uruchamianie i późne zamykanie Chrome, dzięki czemu aplikacje i rozszerzenia mogą działać dłużej.

Gdy zainstalowana aplikacja hostowana, aplikacja w pakiecie lub rozszerzenie mają uprawnienia „w tle”, Chrome działa (niewidocznie) od razu po zalogowaniu się użytkownika na komputerze – jeszcze przed uruchomieniem Chrome. Uprawnienia „w tle” sprawiają też, że Chrome będzie 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 „w tle” zwykle używasz w przypadku tabeli w tle, tabeli zdarzeń lub (w przypadku aplikacji hostowanych) okna w tle.

"bookmarks" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.bookmarks.
"browsingData" Przyznaje rozszerzeniu dostęp do interfejsu chrome.browsingData API.
"certificateProvider" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.certificateProvider.
"clipboardRead" Wymagany, jeśli rozszerzenie lub aplikacja korzysta z document.execCommand('paste').
"clipboardWrite" Wskazuje, że rozszerzenie lub aplikacja korzysta z document.execCommand('copy') lub document.execCommand('cut'). To uprawnienie jest wymagane w przypadku aplikacji hostowanych, a w przypadku rozszerzeń i aplikacji w pakiecie jest zalecane.
"contentSettings" Przyznaje rozszerzeniu dostęp do interfejsu chrome.contentSettings API.
"contextMenus" Przyznaje rozszerzeniu dostęp do interfejsu chrome.contextMenus API.
"cookies" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.cookies.
"debugger" Przyznaje rozszerzeniu dostęp do interfejsu chrome.debugger API.
"declarativeContent" Przyzna rozszerzeniu dostęp do interfejsu API chrome.declarativeContent.
"declarativeNetRequest" Przyzna rozszerzeniu dostęp do interfejsu API chrome.declarativeNetRequest.
"declarativeNetRequestFeedback" Przyznaje rozszerzeniu dostęp do zdarzeń i metod w interfejsie chrome.declarativeNetRequest API, które zwracają informacje o pasujących regułach deklaratywnych.
"declarativeWebRequest" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.declarativeWebRequest.
"desktopCapture" Przyzna rozszerzeniu dostęp do interfejsu API chrome.desktopCapture.
"documentScan" Przyznaje rozszerzeniu dostęp do interfejsu chrome.documentScan API.
"downloads" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.downloads.
"enterprise.deviceAttributes" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.enterprise.deviceAttributes.
"enterprise.hardwarePlatform" Daje rozszerzeniu dostęp do interfejsu API chrome.enterprise.hardwarePlatform.
"enterprise.networkingAttributes" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.enterprise.networkingAttributes.
"enterprise.platformKeys" Udostępnia rozszerzeniu dostęp do interfejsu API chrome.enterprise.platformKeys.
"experimental" Wymagany, jeśli rozszerzenie lub aplikacja używa dowolnej funkcji chrome.experimental.* interfejsy API,
"fileBrowserHandler" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.fileBrowserHandler.
"fileSystemProvider" Udostępnia rozszerzeniu dostęp do interfejsu API chrome.fileSystemProvider.
"fontSettings" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.fontSettings.
"gcm" Przyzna rozszerzeniu dostęp do interfejsu API chrome.gcm.
"geolocation" Umożliwia rozszerzeniu lub aplikacji korzystanie z interfejsu geolokalizacji API bez wyświetlania użytkownikowi prośby o pozwolenie.
"history" Przyzna rozszerzeniu dostęp do interfejsu chrome.history API.
"identity" Przyznaje rozszerzeniu dostęp do interfejsu chrome.identity API.
"idle" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.idle.
"loginState" Przyznaje rozszerzeniu dostęp do interfejsu chrome.loginState API.
"management" Daje rozszerzeniu dostęp do interfejsu chrome.management API.
"nativeMessaging" Przyznaje rozszerzeniu dostęp do natywnego interfejsu API do obsługi wiadomości.
"notifications" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.notifications.
"pageCapture" Przyzna rozszerzeniu dostęp do interfejsu chrome.pageCapture API.
"platformKeys" Daje rozszerzeniu dostęp do interfejsu API chrome.platformKeys.
"power" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.power.
"printerProvider" Przyzna rozszerzeniu dostęp do interfejsu API chrome.printerProvider.
"printing" Przyzna rozszerzeniu dostęp do interfejsu chrome.printing API.
"printingMetrics" Przyzna rozszerzeniu dostęp do interfejsu chrome.printingMetrics API.
"privacy" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.privacy.
"processes" Przyzna rozszerzeniu dostęp do interfejsu API chrome.processes.
"proxy" Przyznaje rozszerzeniu dostęp do interfejsu chrome.proxy API.
"scripting" Przyznaje rozszerzeniu dostęp do interfejsu chrome.scripting API.
"sessions" Przyzna rozszerzeniu dostęp do interfejsu API chrome.sessions.
"signedInDevices" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.signedInDevices.
"storage" Przyznaje rozszerzeniu dostęp do interfejsu chrome.storage API.
"system.cpu" Przyznaje rozszerzeniu dostęp do interfejsu chrome.system.cpu API.
"system.display" Przyzna rozszerzeniu dostęp do interfejsu API chrome.system.display.
"system.memory" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.system.memory.
"system.storage" Daje rozszerzeniu dostęp do interfejsu chrome.system.storage API.
"tabCapture" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.tabCapture.
"tabGroups" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.tabGroups.
"tabs" Przyznaje rozszerzeniu dostęp do pól z przywilejami obiektów Tab używanych przez kilka interfejsów API, w tym chrome.tabschrome.windows. W wielu przypadkach rozszerzenie nie musi deklarować uprawnienia "tabs", aby korzystać z tych interfejsów API.
"topSites" Przyznaje rozszerzeniu dostęp do interfejsu chrome.topSites API.
"tts" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.tts.
"ttsEngine" Przyzna rozszerzeniu dostęp do interfejsu API chrome.ttsEngine.
"unlimitedStorage" Zapewnia nieograniczoną kwotę na przechowywanie danych po stronie klienta, takich jak bazy danych i pliki w lokalnej pamięci masowej. Bez tego uprawnienia rozszerzenie lub aplikacja ma ograniczony rozmiar pamięci lokalnej do 5 MB.
Uwaga: to uprawnienie dotyczy tylko bazy danych Web SQL i pamięci podręcznej aplikacji (patrz problem 58985). Obecnie nie działa ona też z subdomenami z symbolem wieloznacznym, takim jak http://*.example.com.
"vpnProvider" Daje rozszerzeniu dostęp do interfejsu API chrome.vpnProvider.
"wallpaper" Przyzna rozszerzeniu dostęp do interfejsu chrome.wallpaper API.
"webNavigation" Przyznaje rozszerzeniu dostęp do interfejsu API chrome.webNavigation.
"webRequest" Przyzna rozszerzeniu dostęp do interfejsu API chrome.webRequest.
"webRequestBlocking" Wymagane, jeśli rozszerzenie używa interfejsu chrome.webRequest w sposób blokujący.