Plik manifestu – piaskownica

Ostrzeżenie: od wersji 57 Chrome nie będzie już zezwalać na zewnętrzne treści internetowe (w tym na stronach umieszczonych w trybie piaskownicy i w skryptach. Użyj komponentu WebView.

Definiuje zbiór stron aplikacji lub rozszerzeń, które mają być wyświetlane w ramach unikatowego pochodzenia w piaskownicy, oraz opcjonalnie zasady Content Security Policy, których mają one używać. Użycie piaskownicy ma 2 konsekwencje:

  1. Strona w piaskownicy nie ma dostępu do interfejsów API rozszerzeń i aplikacji ani bezpośredniego dostępu do strony poza piaskownicą (mogą komunikować się z nimi przez postMessage()).
  2. Strona w piaskownicy nie podlega zasadom Content Security Policy (CSP) stosowanym przez pozostałą część aplikacji lub rozszerzenia (ma ona własną wartość CSP). Oznacza to, że może ona na przykład używać skryptu w ciele wiadomości i elementu eval.

    Oto przykład określenia, że 2 strony rozszerzenia mają być wyświetlane w piaskownicy z niestandardowym CSP:

    {
      ...
      "sandbox": {
        "pages": [
          "page1.html",
          "directory/page2.html"
        ]
        // content_security_policy is optional.
        "content_security_policy":
            "sandbox allow-scripts; script-src 'self'"
      ],
      ...
    }
    

    Jeśli nie podasz żadnej wartości, domyślną wartością content_security_policy będzie sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';. Aby jeszcze bardziej ograniczyć piaskownicę, możesz określić wartość CSP, ale musi ona zawierać dyrektywę sandbox i nie może zawierać znacznika allow-same-origin (możliwe znaczniki piaskownicy znajdziesz w specyfikacji HTML5). Poza tym określony przez Ciebie CSP może nie zezwalać na wczytywanie na stronach działających w trybie piaskownicy.

Pamiętaj, że musisz podać tylko strony, które mają być wczytywane w oknach lub ramach. Zasoby używanych przez strony w trybie piaskownicy (np. arkusze stylów lub pliki źródłowe JavaScript) nie muszą pojawiać się sandboxed_page, będą one korzystać z piaskownicy strony, na której zostały umieszczone.

„Using eval in Chrome Extensions. Bezpiecznie.” zawiera szczegółowe informacje o wdrażaniu procesu piaskownicy, który umożliwia korzystanie z bibliotek, które w innym przypadku mogłyby mieć problemy z wykonaniem w ramach domyślnych zasad Content Security Policy rozszerzenia.

Stronę w trybie piaskownicy można określić tylko wtedy, gdy korzystasz z wersji manifest_version 2 lub nowszej.