Manifest – Sandbox

Definiert eine Sammlung von Erweiterungsseiten, die in einem eindeutigen Sandbox-Ursprung bereitgestellt werden sollen. Die Content Security Policy, die von den in der Sandbox ausgeführten Seiten einer Erweiterung verwendet wird, wird im Schlüssel "content_security_policy" angegeben.

Die Verwendung einer Sandbox hat zwei Auswirkungen:

  1. Eine Seite in einer Sandbox hat keinen Zugriff auf Erweiterungs-APIs und keinen direkten Zugriff auf Seiten ohne Sandbox. Sie kann über postMessage() mit ihnen kommunizieren.
  2. Eine Seite, die in einer Sandbox ausgeführt wird, unterliegt nicht der Content Security Policy (CSP), die vom Rest der Erweiterung verwendet wird, da sie einen eigenen separaten CSP-Wert hat. Das bedeutet, dass sie beispielsweise ein Inline-Script und eval() verwenden kann.

So können Sie beispielsweise angeben, dass zwei Erweiterungsseiten in einer Sandbox mit einer benutzerdefinierten CSP bereitgestellt werden sollen:

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

Wenn keine Angabe erfolgt, gilt für "content_security_policy" der Standardwert sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';.

Sie können den CSP-Wert angeben, um die Sandbox weiter einzuschränken. Er MUSS jedoch die Anweisung "sandbox" enthalten und DARF NICHT das Token allow-same-origin enthalten. Mögliche Sandbox-Tokens finden Sie in der HTML5-Spezifikation.

Beachten Sie, dass Sie nur die Seiten auflisten müssen, die voraussichtlich in Fenstern oder Frames geladen werden. Ressourcen, die von Seiten in einer Sandbox verwendet werden (z.B. Stylesheets oder JavaScript-Quelldateien), müssen nicht in der Liste pages aufgeführt werden, da sie die Sandbox des Frames verwenden, in dem sie eingebettet sind.

Unter „eval()“ in Chrome-Erweiterungen verwenden wird die Implementierung eines Sandbox-Workflows genauer erläutert, der die Verwendung von Bibliotheken ermöglicht, bei denen sonst unter der standardmäßigen Content Security Policy der Erweiterung Probleme bei der Ausführung auftreten würden.