Tablica ciągów znaków określająca ścieżki spakowanych zasobów, które powinny być używane w kontekście strony internetowej. Te ścieżki są powiązane z katalogiem głównym pakietu i mogą zawierać symbole wieloznaczne. Na przykład rozszerzenie, które wstrzykuje skrypt treści z myślą o utworzeniu niestandardowego interfejsu dla example.com
, umożliwiłoby dostęp do wszystkich zasobów wymaganych przez ten interfejs (obrazów, ikon, arkuszy stylów, skryptów itp.) w ten sposób:
{
...
"web_accessible_resources": [
"images/*.png",
"style/double-rainbow.css",
"script/double-rainbow.js",
"script/main.js",
"templates/*"
],
...
}
Zasoby te będą wtedy dostępne na stronie internetowej pod adresem URL chrome-extension://[PACKAGE ID]/[PATH]
, który można wygenerować za pomocą metody extension.getURL. Zasoby z listy dozwolonych są udostępniane z odpowiednimi nagłówkami CORS, więc są dostępne za pomocą mechanizmów takich jak XHR.
Nawigacja ze źródła internetowego do zasobu rozszerzenia będzie blokowana, chyba że zasób zostanie oznaczony jako dostępny w internecie. Zwróć uwagę na te narożne etui:
- Gdy rozszerzenie używa interfejsów API webRequest lub declarativeWebRequest do przekierowania żądania zasobu publicznego do zasobu niedostępnego w internecie, takie żądanie też jest blokowane.
- Powyższa zasada jest stosowana nawet wtedy, gdy zasób niedostępny z internetu należy do rozszerzenia przekierowującego.
Same skrypty treści nie muszą znajdować się na liście dozwolonych.
Przed wersją 2 pliku manifestu wszystkich zasobów rozszerzenia można było uzyskać dostęp z dowolnej strony w internecie. Pozwoliło to złośliwej witrynie do odcisków cyfrowych zainstalowanych przez użytkownika rozszerzeń lub wykorzystywania luk w zabezpieczeniach (np. błędów XSS) w zainstalowanych rozszerzeniach. Ograniczenie dostępności tylko do zasobów, które są wyraźnie oznaczone jako dostępne online, ma na celu zminimalizowanie powierzchni ataku i ochronę prywatności użytkowników.
Domyślna dostępność
Zasoby zawarte w pakietach korzystających z manifest_version
w wersji 2 lub nowszej są domyślnie zablokowane i muszą być dozwolone do użycia w tej usłudze.
Zasoby zawarte w pakietach używające klasy manifest_version
1 są domyślnie dostępne, ale if ustawisz tę właściwość, będzie ona traktowana jako pełna lista zasobów umieszczonych na liście dozwolonych.
Zasoby, których nie ma na liście, zostaną zablokowane.