Plik manifestu – piaskownica

Ostrzeżenie: od wersji 57 Chrome nie będzie zezwalać na umieszczanie zewnętrznych treści internetowych (w tym umieszczonych na nich ramek i skryptów) na stronach w trybie piaskownicy. Użyj webview.

Definiuje zbiór stron aplikacji lub rozszerzeń, które mają być wyświetlane w unikalnym źródle w trybie piaskownicy, i opcjonalnie Content Security Policy, które mają być z nimi używane. Działanie piaskownicy ma 2 konsekwencje:

  1. Strona w trybie piaskownicy nie ma dostępu do interfejsów API rozszerzeń i aplikacji, nie ma też bezpośredniego dostępu do stron poza tą piaskownicą (może komunikować się ze sobą przez postMessage()).
  2. Strona w trybie piaskownicy nie podlega standardowi Content Security Policy (CSP) używanej przez pozostałą część aplikacji lub rozszerzenia (ma własną, osobną wartość CSP). Oznacza to na przykład, że może używać wbudowanego skryptu i eval.

    Na przykład możesz określić, że 2 strony rozszerzeń 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';. Możesz określić wartość CSP, aby jeszcze bardziej ograniczyć piaskownicę, ale musi ona zawierać dyrektywę sandbox i może nie zawierać tokena allow-same-origin (informacje o możliwych tokenach piaskownicy znajdziesz w specyfikacji HTML5). Określony przez Ciebie dostawca CSP może też nie zezwalać na wczytywanie zewnętrznych treści internetowych na stronach piaskownicy.

Pamiętaj, że musisz podać tylko te strony, które powinny zostać wczytane w oknach lub ramkach. Zasoby używane przez strony w trybie piaskownicy (np. arkusze stylów lub pliki źródłowe JavaScript) nie muszą pojawiać się na liście sandboxed_page – będą używać piaskownicy strony, na której je umieszczono.

„Using eval in Chrome Extensions. „Safely” zawiera szczegółowe informacje o implementowaniu przepływu pracy w trybie piaskownicy umożliwiającego korzystanie z bibliotek, w przypadku których wystąpiły problemy z uruchomieniem zgodnie z domyślną zasadą Content Security Policy rozszerzenia.

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