Plik manifestu – zasoby dostępne w internecie

Zasoby dostępne w internecie to pliki wewnątrz rozszerzenia, do których dostęp mają strony internetowe lub inne rozszerzeń. Rozszerzenia zwykle używają tej funkcji do udostępniania obrazów lub innych zasobów, które muszą być wczytywane na stronach internetowych, ale każdy zasób należący do pakietu rozszerzenia może być dostępny z internetu.

Domyślnie żadne zasoby nie są dostępne w internecie, ponieważ umożliwia to złośliwej stronie odcisk cyfrowy rozszerzeń zainstalowanych przez użytkownika lub wykorzystywać luki w zabezpieczeniach (np. błędy XSS) w zainstalowanych rozszerzeniach. Tylko strony lub skrypty wczytywane ze źródła rozszerzenia ma dostęp do zasobów tego rozszerzenia.

Deklaracja w pliku manifestu

Używaj właściwości manifestu web_accessible_resources do deklarowania, które zasoby są dostępne i dla których skąd się biorą. Ta właściwość jest tablicą obiektów deklarujących reguły dostępu do zasobów. Każdy obiekt zawiera listę zasobów rozszerzeń i musi podać wartość dla co najmniej jednego z matches lub extension_ids kluczy wskazujących źródła mające dostęp do tych zasobów.

{
  ...
  "web_accessible_resources": [
    {
      "resources": [ "test1.png", "test2.png" ],
      "matches": [ "https://web-accessible-resources-1.glitch.me/*" ]
    }, {
      "resources": [ "test3.png", "test4.png" ],
      "matches": [ "https://web-accessible-resources-2.glitch.me/*" ]
    }
  ],
  ...
}

Każdy obiekt w tablicy zawiera te elementy:

"resources"
Tablica ciągów tekstowych, z których każdy zawiera ścieżkę względną do danego zasobu z katalogu głównego rozszerzenia. Zasoby mogą zawierać gwiazdki (*) odpowiadające symbolom wieloznacznym. Na przykład reguła "/images/*" ujawnia całą zawartość katalogu images/ rozszerzenia rekurencyjnie, a "*.png" – wszystkie pliki PNG.
"matches"
Tablica ciągów tekstowych, z których każdy zawiera wzorzec dopasowania określający, które witryny mają dostęp do danego zbioru zasobów. Do dopasowywania adresów URL używane jest tylko źródło. Źródła obejmują dopasowywanie subdomen. Google Chrome generuje „nieprawidłowy wzorzec dopasowania” jeśli wzorzec ma ścieżkę inną niż „/*”.
"extension_ids"
Tablica ciągów tekstowych, z których każdy zawiera identyfikator rozszerzenia z dostępem do zasobów.

Każdy element musi zawierać element "resources" oraz element "matches" lub "extension_ids". Powoduje to utworzenie mapowania, które ujawnia określone zasoby stronom internetowym pasującym do wzorca lub rozszerzeniom o pasujących identyfikatorach.

Zasoby są dostępne na stronie internetowej pod adresem URL chrome-extension://[PACKAGE ID]/[PATH], który można wygenerować przy użyciu runtime.getURL() . Zasoby są udostępniane z odpowiednimi nagłówkami CORS, dzięki czemu są dostępne za pomocą funkcji fetch().

Nawigacja ze źródła stron internetowych do zasobu rozszerzenia jest blokowana, chyba że zasób które są dostępne w internecie. Zwróć uwagę na te narożniki:

  • Gdy rozszerzenie używa interfejsu API webRequest do przekierowania publicznego żądania zasobu do zasobu, który nie jest dostępny w internecie, takie żądanie również jest blokowane.
  • Przekierowania z zasobów publicznych są blokowane nawet wtedy, gdy zasób, który jest niedostępny w internecie, należy do przekierowania .
  • Nawigacja jest blokowana w trybie incognito, chyba że wartość w polu "incognito" jest ustawiona na "split".

Same skrypty treści nie muszą być dozwolone.

Przykład

Przykład ułatwień dostępu w internecie pokazuje zastosowanie tego elementu w działającym rozszerzeniu.