Aggiorna il manifest

Conversione di un manifest V2 in un manifest V3

Il file manifest.json richiede un formato leggermente diverso per Manifest V3 rispetto a Manifest V2. Questa pagina descrive le modifiche che interessano solo il file manifest.json. Tuttavia, molte delle modifiche a script e pagine richiedono anche modifiche al manifest. Queste modifiche sono coperte dalle attività di migrazione che le richiedono.

Modificare il numero di versione del file 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 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". Per informazioni su "content_scripts.matches", consulta Eseguire l'iniezione con dichiarazioni statiche.

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 tramite il web

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

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

L'esempio seguente mette a confronto le risorse accessibili tramite il 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, consulta Risorse accessibili sul 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/*"
      ]
    }
  ],
  ...
}