Plik manifestu – zasoby dostępne w internecie

Zasoby dostępne przez internet to pliki wewnątrz rozszerzenia, do których dostęp mają strony internetowe lub inne rozszerzenia. Rozszerzenia zwykle korzystają z tej funkcji, aby wyświetlać obrazy lub inne zasoby, które powinny być wczytywane na strony internetowe, ale każdy zasób zawarty w pakiecie rozszerzenia może być dostępny w internecie.

Domyślnie żadne zasoby nie są dostępne w internecie, ponieważ złośliwe oprogramowanie może wykorzystywać zainstalowane przez użytkownika rozszerzenia odciskiem cyfrowym lub wykorzystywać luki w zabezpieczeniach (np. błędy XSS) w zainstalowanych rozszerzeniach. Dostęp do jego zasobów mają tylko strony i skrypty wczytane ze źródła.

Deklaracja w pliku manifestu

Użyj właściwości web_accessible_resources w pliku manifestu, aby określić, które zasoby są widoczne i z jakich źródeł. Ta właściwość to tablica obiektów, która deklaruje reguły dostępu do zasobów. Każdy obiekt zawiera listę zasobów rozszerzeń i musi podać wartość co najmniej jednego z kluczy matches lub extension_ids 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 (*) w przypadku dopasowań z symbolem wieloznacznym. Na przykład "/images/*" ujawnia rekurencyjnie całą zawartość katalogu images/ rozszerzenia, a "*.png" ujawnia wszystkie pliki PNG.
"matches"
Tablica ciągów tekstowych, z których każdy zawiera wzorzec dopasowania określający, które witryny mogą uzyskać dostęp do danego zbioru zasobów. Do dopasowywania adresów URL służy tylko źródło. Źródło obejmuje dopasowywanie do subdomen. Google Chrome zwraca błąd „Nieprawidłowy wzorzec dopasowania”, jeśli ścieżka wzorca ma inną ścieżkę niż „/*”.
"extension_ids"
Tablica ciągów tekstowych, z których każdy zawiera identyfikator rozszerzenia, które ma dostęp do zasobów.

Każdy element musi zawierać element "resources" oraz element "matches" lub "extension_ids". Spowoduje to utworzenie mapowania, które udostępnia 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ć za pomocą metody runtime.getURL(). Zasoby są udostępniane z odpowiednimi nagłówkami CORS, więc są dostępne z użyciem fetch().

Nawigacja ze źródła internetowego do zasobu rozszerzenia jest blokowana, chyba że zasób jest oznaczony jako dostępny z internetu. Zwróć uwagę na te narożniki:

  • Gdy rozszerzenie używa interfejsu API webRequest do przekierowania żądania zasobu publicznego do zasobu, który nie jest dostępny z internetu, takie żądanie też jest blokowane.
  • Przekierowania z zasobów publicznych są blokowane, nawet jeśli zasób, który nie jest dostępny z internetu, należy do rozszerzenia przekierowującego.
  • Nawigacja jest zablokowana w trybie incognito, chyba że w polu "incognito" ustawiono wartość "split".

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

Przykład

Przykład zasobów dostępnych w internecie pokazuje zastosowanie tego elementu w działającym rozszerzeniu.