Aggiorna il manifest

Converti un manifest V2 in un manifest V3

Il file manifest.json richiede un formato leggermente diverso per Manifest V3 rispetto a Manifest V2. In questa pagina vengono descritte le modifiche che interessano solo il file manifest.json. Tuttavia, molte delle modifiche agli script e alle pagine richiedono modifiche anche al file manifest. Queste modifiche rientrano nelle attività di migrazione che le richiedono.

Modifica il numero di versione del manifest

Modifica il valore del campo "manifest_version" da 2 a 3.

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

Aggiorna le autorizzazioni dell'host

Le autorizzazioni host in Manifest V3 sono un campo separato; non devi specificarle in "permissions" o in "optional_permissions".

Gli script di contenuti rimangono in "content_scripts.matches". Consulta l'articolo Inserire dichiarazioni statiche per informazioni su "content_scripts.matches".

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

Aggiorna le risorse accessibili dal web

Le risorse accessibili sul web sono file all'interno di un'estensione a cui possono accedere le pagine web o altre estensioni. Come implementato in Manifest V2, il campo "web_accessible_resources" rendeva le estensioni rilevabili da siti web e malintenzionati se l'estensione sceglieva di esporre risorse. Ciò ha creato opportunità di fingerprinting o di accesso involontario alle risorse.

Manifest V3 limita l'esposizione limitando i siti web e le estensioni che possono accedere alle risorse dell'estensione. Anziché fornire un elenco di file come prima, ora puoi fornire un array di oggetti, ciascuno dei quali mappa un insieme di risorse a un insieme di URL o ID estensione.

L'esempio seguente confronta le risorse accessibili dal web tra Manifest V2 e Manifest V3. In Manifest V2 le risorse specificate erano accessibili a tutti i siti web per impostazione predefinita. Nel codice Manifest V3 mostrato di seguito, queste risorse sono disponibili solo per https://example.com, mentre solo alcune immagini sono disponibili per tutti i siti web.

Per ulteriori informazioni, vedi Risorse accessibili dal web e Pattern di corrispondenza.

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