Aby korzystać z większości interfejsów API rozszerzeń i funkcji, musisz zadeklarować intencję rozszerzenia w polach uprawnień w pliku manifestu. Rozszerzenia mogą prosić o te kategorie uprawnień określone za pomocą odpowiednich kluczy manifestu:
- "permissions"
- Zawiera elementy z listy znanych ciągów. Zmiany mogą spowodować wyświetlenie ostrzeżenia.
- "optional_permissions"
- Przyznany przez użytkownika w czasie działania, a nie w momencie instalacji.
- "content_scripts.matches"
- Zawiera co najmniej jeden wzorzec dopasowania, który umożliwia skryptom treści wstrzykiwanie do jednego lub większej liczby hostów. Zmiany mogą spowodować wyświetlenie ostrzeżenia.
- "host_permissions"
- Zawiera co najmniej jeden wzorzec dopasowania, który daje dostęp do co najmniej jednego hosta. Zmiany mogą spowodować wyświetlenie ostrzeżenia.
- "optional_host_permissions"
- Przyznany przez użytkownika w czasie działania, a nie w momencie instalacji.
Uprawnienia pomagają ograniczyć szkody powstałe w wyniku ataku złośliwego oprogramowania. Niektóre ostrzeżenia o uprawnieniach są wyświetlane użytkownikom z prośbą o zgodę przed instalacji lub w czasie działania, jak opisano w sekcji Uprawnienia z ostrzeżeniami.
Rozważ użycie opcjonalnych uprawnień w przypadku, gdy funkcje rozszerzenia pozwala użytkownikom świadomie kontrolować dostęp do zasobów i danych.
Jeśli interfejs API wymaga uprawnień, instrukcje ich zadeklarowania znajdziesz w dokumentacji. Dla przykład: Storage API.
Plik manifestu
Oto przykład sekcji uprawnień w pliku manifest:
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 hosta umożliwiają rozszerzeniom interakcję z wzorcami dopasowania adresu URL. Niektóre interfejsy API Chrome wymagają uprawnień hosta oraz własnych uprawnień interfejsu API, które są wymienione na każdej stronie referencyjnej. Oto przykłady:
- Wysyłaj żądania fetch()ze skryptu service worker i stron rozszerzeń.
- Odczytywać poufne właściwości karty (url, tytuł i favIconUrl) oraz wysyłać do nich zapytania za pomocą interfejsu API chrome.tabs.
- Wstrzyknij skrypt treści automatycznie.
- Monitoruj i kontroluj żądania sieciowe za pomocą interfejsu API chrome.webRequest.
- Dostęp do plików cookie przez interfejs API chrome.cookies.
- Przekierowuj i modyfikuj żądania oraz nagłówki odpowiedzi za pomocą interfejsu API chrome.declarativeNetRequest.
Uprawnienia z ostrzeżeniami
Gdy rozszerzenie wymaga wielu uprawnień i wiele z nich wyświetla się ostrzeżenia podczas instalacji, użytkownik zobaczy listę ostrzeżeń, podobnie jak w tym przykładzie:

Użytkownicy chętniej ufają rozszerzeniu, które wyświetla się z ograniczonymi ostrzeżeniami lub gdy informacje o uprawnieniach są wyjaśnione do klientów. Aby uniknąć alarmu, rozważ wdrożenie opcjonalnych uprawnień lub mniej zaawansowanego interfejsu API. ostrzeżeniami. Sprawdzone metody postępowania z ostrzeżeniami znajdziesz w artykule Ostrzeżenia o uprawnieniach. Konkretna są wymienione wraz z uprawnieniami, do których mają zastosowanie, Lista referencyjna uprawnień.
Dodawanie lub zmienianie wzorców dopasowania w polach "host_permissions" i "content_scripts.matches"
w pliku manifestu wywoła ostrzeżenie. Więcej informacji:
Aktualizuję uprawnienia.
Zezwól na dostęp
Jeśli rozszerzenie ma działać pod adresami URL file:// lub w trybie incognito, użytkownicy muszą zezwolić mu na dostęp na stronie z informacjami o nim. Instrukcje otwierania strony z informacjami znajdziesz w sekcji Zarządzanie rozszerzeniami.
Zezwól na dostęp do adresów URL plików i stron incognito
- Kliknij prawym przyciskiem myszy ikonę rozszerzenia w Chrome.
- Wybierz Zarządzaj rozszerzeniem.   - Menu rozszerzeń 
- Przewiń w dół, aby włączyć dostęp do adresów URL plików lub trybu incognito.   - Włączono dostęp do adresów URL plików i trybu incognito. 
Aby sprawdzić, czy użytkownik zezwolił na dostęp, możesz wywołać metodę extension.isAllowedIncognitoAccess() lub
extension.isAllowedFileSchemeAccess()