Plik manifestu – piaskownica

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

Określa zbiór stron aplikacji lub rozszerzeń, które będą wyświetlane w unikalnym źródle działającym w piaskownicy, oraz opcjonalnie Content Security Policy, które mają być z nimi używane. Piaskownica ma dwie konsekwencje:

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

    Możesz na przykład określić, jak określić, że 2 strony rozszerzenia mają być wyświetlane w piaskownicy przy użyciu niestandardowego 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 tu ż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 podać 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). Podany przez Ciebie dostawca CSP może też nie zezwalać na ładowanie zewnętrznych treści internetowych na stronach piaskownicy.

Pamiętaj, że musisz podać tylko te strony, które powinny być wczytywane w oknach lub ramkach. Zasoby używane przez strony w 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 są umieszczone.

„Using eval in Chrome Extensions. „Safely” zawiera więcej informacji na temat wdrażania przepływu pracy w trybie piaskownicy umożliwiającego korzystanie z bibliotek, które w innym przypadku mogłyby powodować problemy z uruchomieniem zgodnie z domyślną zasadą Content Security Policy rozszerzenia.

Stronę w trybie piaskownicy można określić tylko w manifest_version 2 lub nowszej wersji.