Atualizar o manifesto

Converter um manifesto da V2 em um manifesto da V3

O arquivo manifest.json requer um formato um pouco diferente para o Manifesto V3 em comparação com o Manifesto V2. Esta página descreve as mudanças que afetam apenas o arquivo manifest.json. No entanto, muitas das mudanças em scripts e páginas também exigem alterações no manifesto. Essas mudanças são cobertas pelas tarefas de migração que as exigem.

Alterar o número da versão do manifesto

Mude o valor do campo "manifest_version" de 2 para 3.

Manifest V2
{
  ...
  "manifest_version": 2
  ...
}
Manifesto V3
{
  ...
  "manifest_version": 3
  ...
}

Atualizar permissões do host

As permissões do host no Manifest V3 são um campo separado. Não é necessário especificar essas permissões em "permissions" ou "optional_permissions".

Scripts de conteúdo permanecem em "content_scripts.matches". Consulte Injetar com declarações estáticas para ver informações sobre "content_scripts.matches".

Manifest V2
{
  ...
  "permissions": [
    "tabs",
    "bookmarks",
    "https://www.blogger.com/",
  ],
  "optional_permissions": [
    "unlimitedStorage",
    "*://*/*",
  ]
  ...
}
Manifesto V3
{
  ...
  "permissions": [
    "tabs",
    "bookmarks"
  ],
  "optional_permissions": [
    "unlimitedStorage"
  ],
  "host_permissions": [
    "https://www.blogger.com/",
  ],
  "optional_host_permissions": [
    "*://*/*",
  ]
  ...
}

Atualizar recursos acessíveis na Web

Os recursos acessíveis pela Web são arquivos em uma extensão que podem ser acessados por páginas da Web ou outras extensões. Como implementado no Manifesto V2, o campo "web_accessible_resources" tornava as extensões detectáveis por sites e invasores se a extensão expuser os recursos. Isso criou oportunidades para técnicas de impressão digital ou acesso não intencional a recursos.

O Manifest V3 limita a exposição restringindo quais sites e extensões podem acessar os recursos da sua extensão. Em vez de fornecer uma lista de arquivos como antes, agora você fornece uma matriz de objetos, cada um mapeando um conjunto de recursos para um conjunto de URLs ou IDs de extensão.

O exemplo abaixo compara os recursos acessíveis pela Web entre o Manifest V2 e o Manifest V3. No Manifest v2, os recursos especificados eram acessíveis por padrão a todos os sites da Web. No código do Manifest V3 mostrado abaixo, esses recursos estão disponíveis apenas para https://example.com, enquanto apenas algumas imagens estão disponíveis para todos os sites.

Para mais informações, consulte Recursos acessíveis na Web e Padrões de correspondência.

Manifest V2
{
  ...
  "web_accessible_resources": [
    "images/*",
    "style/extension.css",
    "script/extension.js"
  ],
  ...
}
Manifesto V3
{
  ...
    "web_accessible_resources": [
    {
      "resources": [
        "images/*"
      ],
      "matches": [
        "*://*/*"
      ]
    },
    {
      "resources": [
        "style/extension.css",
        "script/extension.js"
      ],
      "matches": [
        "https://example.com/*"
      ]
    }
  ],
  ...
}