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 e para o Manifesto V2. Nesta página, descrevemos as mudanças que afetam apenas o arquivo manifest.json. No entanto, muitas das mudanças em scripts e páginas também exigem mudanças no manifesto. Essas alterações são cobertas com as tarefas de migração que as exigem.

Mudar o número da versão do manifesto

Altere 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 Manifesto V3 são um campo separado. Você não as especifica no "permissions" ou no "optional_permissions".

Os scripts de conteúdo permanecem em "content_scripts.matches". Consulte Injetar com declarações estáticas para mais 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

Recursos acessíveis na Web são arquivos dentro de uma extensão que podem ser acessados por páginas da Web ou outras extensões. Conforme implementado no Manifest V2, o campo "web_accessible_resources" tornou as extensões detectáveis por sites e invasores se elas expuserem 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 mapeia um conjunto de recursos para um conjunto de URLs ou códigos de extensão.

O exemplo abaixo compara recursos acessíveis na Web entre o Manifesto V2 e o Manifesto V3. No Manifest V2, os recursos especificados eram acessíveis a todos os sites por padrão. 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/*"
      ]
    }
  ],
  ...
}