Deklarowanie uprawnień

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:

W niektórych szczególnych przypadkach uprawnienia hosta nie są wymagane. Obejmują one:

  • Korzystanie z interfejsu chrome.tabs API do uzyskiwania dostępu do kart i ich modyfikowania, w tym uzyskiwania dostępu do adresu URL karty, jeśli masz uprawnienie tabs.
  • 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:

Ostrzeżenia o uprawnieniach rozszerzenia podczas instalacji

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""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

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

    Menu kontekstowe rozszerzenia
    Menu rozszerzeń
  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().