Manifesto - Sandbox

Define um conjunto de páginas de extensão que serão exibidas em uma origem exclusiva em sandbox. A Política de Segurança de Conteúdo usada pelas páginas no modo sandbox de uma extensão é especificada na chave "content_security_policy".

O uso de um sandbox tem duas implicações:

  1. Uma página no modo sandbox não tem acesso a APIs de extensão ou acesso direto a páginas que não estejam no modo sandbox (ela pode se comunicar com elas usando 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 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, confira como especificar que duas páginas de extensão serão exibidas em um sandbox com uma CSP personalizada:

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

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 incluir a diretiva "sandbox" e NÃO PODE ter o token allow-same-origin. Consulte a especificação HTML5 para ver possíveis tokens de sandbox.

Você só precisa listar as páginas que espera que sejam 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 pages porque usam o sandbox do frame que os incorpora.

O artigo "Usar o eval() nas extensões do Chrome" inclui 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 de acordo com a Política de Segurança de Conteúdo padrão da extensão.