Aby korzystać z większości interfejsów API rozszerzeń i funkcji, musisz zadeklarować zamiar rozszerzenia w polach uprawnień manifestu. Rozszerzenia mogą prosić o uprawnienia z tych kategorii, określone za pomocą odpowiednich kluczy pliku manifestu:
"permissions"- Zawiera elementy z listy znanych ciągów tekstowych. Zmiany mogą spowodować wyświetlenie ostrzeżenia.
"optional_permissions"- Przyznawane przez użytkownika w czasie działania aplikacji, a nie podczas instalacji.
"content_scripts.matches"- Zawiera co najmniej jeden wzorzec dopasowania, który umożliwia skryptom treści wstrzykiwanie kodu do co najmniej jednego hosta. Zmiany mogą spowodować wyświetlenie ostrzeżenia.
"host_permissions"- Zawiera co najmniej 1 wzorzec dopasowania, który daje dostęp do co najmniej jednego hosta. Zmiany mogą spowodować wyświetlenie ostrzeżenia.
"optional_host_permissions"- Przyznawane przez użytkownika w czasie działania aplikacji, a nie podczas instalacji.
Uprawnienia pomagają ograniczyć szkody, jeśli rozszerzenie zostanie zainfekowane złośliwym oprogramowaniem. Niektóre ostrzeżenia dotyczące uprawnień są wyświetlane użytkownikom w celu uzyskania ich zgody przed instalacją lub w czasie działania aplikacji, jak opisano w sekcji Uprawnienia z ostrzeżeniami.
Jeśli funkcjonalność rozszerzenia na to pozwala, rozważ użycie opcjonalnych uprawnień, aby zapewnić użytkownikom świadomą kontrolę nad dostępem do zasobów i danych.
Jeśli interfejs API wymaga uprawnień, w jego dokumentacji znajdziesz informacje o tym, jak je zadeklarować. Przykład znajdziesz w artykule Storage API.
Plik manifestu
Oto przykład sekcji uprawnień w pliku manifestu:
manifest.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
}
Uprawnienia hosta
Uprawnienia do hosta umożliwiają rozszerzeniom interakcję z wzorcami dopasowania adresu URL. Niektóre interfejsy API Chrome wymagają uprawnień hosta oprócz własnych uprawnień API, które są opisane na każdej stronie referencyjnej. Oto przykłady:
- Wysyłaj żądania
fetch()ze skryptu service worker rozszerzenia i stron rozszerzenia. - Odczytywanie i wysyłanie zapytań dotyczących wrażliwych właściwości kart (url, title i favIconUrl) za pomocą interfejsu
chrome.tabsAPI. - Wstrzykiwanie skryptu treści programowo.
- Monitoruj żądania sieciowe i kontroluj je za pomocą interfejsu
chrome.webRequestAPI. - Dostęp do plików cookie za pomocą interfejsu
chrome.cookiesAPI. - Przekierowywanie i modyfikowanie żądań oraz nagłówków odpowiedzi za pomocą interfejsu
chrome.declarativeNetRequestAPI.
W niektórych szczególnych przypadkach uprawnienia hosta nie są wymagane. Obejmują one:
- Korzystanie z interfejsu
chrome.tabsAPI do uzyskiwania dostępu do kart i ich modyfikowania, w tym uzyskiwania dostępu do adresu URL karty, jeśli masz uprawnienietabs. - Interakcja z przeglądarką za pomocą interfejsu API
chrome.debugger. - Zezwalanie na wstrzykiwanie skryptu treści zadeklarowanego w pliku manifestu.
Uprawnienia z ostrzeżeniami
Gdy rozszerzenie wymaga wielu uprawnień, a wiele z nich wyświetla ostrzeżenia podczas instalacji, użytkownik zobaczy listę ostrzeżeń, jak w tym przykładzie:

Użytkownicy chętniej ufają rozszerzeniu, które wyświetla niewiele ostrzeżeń lub gdy wyjaśniono im, jakie uprawnienia są wymagane. Aby uniknąć alarmujących ostrzeżeń, rozważ wdrożenie opcjonalnych uprawnień lub mniej zaawansowanego interfejsu API. Sprawdzone metody dotyczące ostrzeżeń znajdziesz w wytycznych dotyczących ostrzeżeń o uprawnieniach. Konkretne ostrzeżenia są wymienione wraz z uprawnieniami, do których się odnoszą, na liście referencyjnej Uprawnienia.
Dodanie lub zmiana wzorców dopasowania w polach "host_permissions" i "content_scripts.matches" pliku manifestu również spowoduje wyświetlenie ostrzeżenia. Więcej informacji znajdziesz w artykule Aktualizowanie uprawnień.
Zezwól na dostęp
Jeśli rozszerzenie musi działać w przypadku adresów URL file:// lub w trybie incognito, użytkownicy muszą przyznać mu dostęp na stronie z informacjami. Instrukcje otwierania strony z informacjami znajdziesz w sekcji Zarządzanie rozszerzeniami.
Zezwalaj na dostęp do adresów URL plików i stron w trybie incognito
- Kliknij prawym przyciskiem myszy ikonę rozszerzenia w Chrome.
Kliknij Zarządzaj rozszerzeniem.
Menu rozszerzeń Przewiń w dół, aby włączyć dostęp do adresów URL plików lub trybu incognito.
Dostęp do adresów URL plików i trybu incognito jest włączony.
Aby sprawdzić, czy użytkownik zezwolił na dostęp, możesz wywołać funkcję extension.isAllowedIncognitoAccess() lub extension.isAllowedFileSchemeAccess().