Deklarowanie uprawnień

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 uprawnienia z tych kategorii, określone za pomocą odpowiednich kluczy pliku manifestu:

"permissions"
Zawiera elementy z listy znanych ciągów znaków. Zmiany mogą spowodować wyświetlenie ostrzeżenia.
"optional_permissions"
Przyznawane przez użytkownika w czasie działania, a nie podczas instalacji.
"content_scripts.matches"
Zawiera co najmniej 1 wzorzec dopasowania, który umożliwia skryptom treści wstrzykiwanie się do co najmniej 1 hosta. Zmiany mogą spowodować wyświetlenie ostrzeżenia.
"host_permissions"
Zawiera co najmniej 1 wzorzec dopasowania, który daje dostęp do co najmniej 1 hosta. Zmiany mogą spowodować wyświetlenie ostrzeżenia.
"optional_host_permissions"
Przyznawane przez użytkownika w czasie działania, a nie podczas instalacji.

Uprawnienia pomagają ograniczyć szkody, jeśli rozszerzenie zostanie naruszone przez złośliwe oprogramowanie. Niektóre ostrzeżenia dotyczące uprawnień są wyświetlane użytkownikom w celu uzyskania ich zgody przed instalacją lub w czasie działania, jak opisano w sekcji Uprawnienia z ostrzeżeniami.

Jeśli funkcjonalność rozszerzenia na to pozwala, rozważ użycie uprawnień opcjonalnych, 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 dotyczące hosta

Uprawnienia dotyczące hosta umożliwiają rozszerzeniom interakcję z wzorcami dopasowania adresów URL . Niektóre interfejsy API Chrome wymagają uprawnień dotyczących hosta oprócz własnych uprawnień interfejsu API, które są opisane na każdej stronie referencyjnej. Oto przykłady:

  • Wysyłanie fetch() żądań ze skryptu service worker rozszerzenia i stron rozszerzenia.
  • Odczytywanie i wysyłanie zapytań dotyczących poufnych właściwości kart (adres URL, tytuł i favIconUrl) za pomocą interfejsu chrome.tabs API.
  • Programowe wstrzykiwanie skryptu treści.
  • Monitorowanie i kontrolowanie żądań sieciowych za pomocą interfejsu chrome.webRequest API.
  • Dostęp do plików cookie za pomocą interfejsu chrome.cookies API.
  • Przekierowywanie i modyfikowanie żądań oraz nagłówków odpowiedzi za pomocą chrome.declarativeNetRequest API.

Uprawnienia z ostrzeżeniami

Gdy rozszerzenie prosi o wiele uprawnień, a wiele z nich wyświetla ostrzeżenia podczas instalacji, użytkownik zobaczy listę ostrzeżeń, jak w tym przykładzie:

Ostrzeżenia o uprawnieniach rozszerzenia podczas instalacji

Użytkownicy chętniej ufają rozszerzeniu, które wyświetla niewiele ostrzeżeń lub gdy uprawnienia są im wyjaśnione. Aby uniknąć alarmujących ostrzeżeń, rozważ wdrożenie uprawnień opcjonalnych lub mniej zaawansowanego interfejsu API. Sprawdzone metody dotyczące ostrzeżeń znajdziesz w artykule Wskazówki dotyczące ostrzeżeń o uprawnieniach. Konkretne ostrzeżenia są wymienione wraz z uprawnieniami, których dotyczą, na liście referencyjnej uprawnień.

Dodanie lub zmiana wzorców dopasowania w polach "host_permissions" i "content_scripts.matches" w 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 ma 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.

Zezwalanie na dostęp do adresów URL plików i stron incognito

  1. Kliknij prawym przyciskiem myszy ikonę rozszerzenia w Chrome.
  2. Wybierz Zarządzaj rozszerzeniem.

    Menu kontekstowe rozszerzenia
    Menu rozszerzenia
  3. Przewiń w dół, aby włączyć dostęp do adresów URL plików lub trybu incognito.

    Zezwalaj na adresy URL plików i tryb incognito na stronie szczegółów rozszerzenia
    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().