Manifesto - Sandbox

Aviso:a partir da versão 57, o Chrome não vai mais permitir conteúdo externo da Web, incluindo frames e scripts incorporados, dentro de páginas no modo sandbox. Use uma webview.

Define um conjunto de páginas de extensões ou apps que serão exibidas em uma origem exclusiva em sandbox e, opcionalmente, uma Política de Segurança de Conteúdo para usar com elas. Estar em um sandbox tem duas implicações:

  1. Uma página no modo sandbox não tem acesso a APIs de extensão ou de apps nem acesso direto a páginas que não estejam no sandbox (ela pode se comunicar com elas pelo postMessage()).
  2. Uma página no modo sandbox não está sujeita à Política de Segurança de Conteúdo (CSP, na sigla em inglês) usada pelo restante do app ou da extensão. Ela tem o próprio valor de CSP separado. Isso significa que, por exemplo, ele pode usar script in-line e eval.

    Por exemplo, veja como especificar que duas páginas de extensão serão exibidas em um sandbox com uma CSP personalizada:

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

    Se não for especificado, o valor padrão de content_security_policy será sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';. É possível especificar o valor da CSP para restringir ainda mais o sandbox, mas ele precisa ter a diretiva sandbox e pode não ter o token allow-same-origin. Consulte a especificação do HTML5 para possíveis tokens de sandbox. Além disso, a CSP especificada pode não permitir o carregamento de conteúdo da Web externo em páginas em sandbox.

Você só precisa listar páginas que deveriam ser carregadas em janelas ou frames. Os recursos usados por páginas no modo sandbox (por exemplo, folhas de estilo ou arquivos de origem JavaScript) não precisam aparecer na lista sandboxed_page. Eles usam o sandbox da página que os incorpora.

"Como usar eval nas extensões do Chrome. "Safely" entra em mais detalhes sobre a implementação de um fluxo de trabalho de sandbox que permite o uso de bibliotecas que, de outra forma, teriam problemas de execução sob a Política de Segurança de Conteúdo padrão da extensão.

A página no modo sandbox só pode ser especificada ao usar o manifest_version 2 ou versões mais recentes.