Plik manifestu – zasoby dostępne w internecie

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.