Formato file manifest

Ogni estensione deve avere un file manifest.json nella directory principale che elenca informazioni importanti sulla struttura e sul comportamento dell'estensione. Questa pagina spiega la struttura dei manifest delle estensioni e le funzionalità che possono includere.

Esempi

I manifest di esempio riportati di seguito mostrano la struttura di base del manifest e alcune funzionalità di uso comune come punto di partenza per creare il tuo manifest:

Manifest minimo

{
  "manifest_version": 3,
  "name": "Minimal Manifest",
  "version": "1.0.0",
  "description": "A basic example extension with only required keys",
  "icons": {
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
}

Registra uno script di contenuti

{
  "manifest_version": 3,
  "name": "Run script automatically",
  "description": "Runs a script on www.example.com automatically when user installs the extension",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "content_scripts": [
    {
      "js": [
        "content-script.js"
      ],
      "matches": [
        "http://*.example.com//"
      ]
    }
  ]
}

Inserire uno script di contenuti

{
  "manifest_version": 3,
  "name": "Click to run",
  "description": "Runs a script when the user clicks the action toolbar icon.",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "background": {
    "service_worker": "service-worker.js"
  },
  "action": {
    "default_icon": {
      "16": "images/icon-16.png",
      "32": "images/icon-32.png",
      "48": "images/icon-48.png",
      "128": "images/icon-128.png"
    }
  },
  "permissions": ["scripting", "activeTab"]
}
{
  "manifest_version": 3,
  "name": "Popup extension that requests permissions",
  "description": "Extension that includes a popup and requests host permissions and storage permissions .",
  "version": "1.0",
  "icons": {
    "16": "images/icon-16.png",
    "32": "images/icon-32.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "action": {
    "default_popup": "popup.html"
  },
  "host_permissions": [
    "https://*.example.com/"
  ],
  "permissions": [
    "storage"
  ]
}

Riquadro laterale

{
  "manifest_version": 3,
  "name": "Side panel extension",
  "version": "1.0",
  "description": "Extension with a default side panel.",
  "icons": {
    "16": "images/icon-16.png",
    "48": "images/icon-48.png",
    "128": "images/icon-128.png"
  },
  "side_panel": {
    "default_path": "sidepanel.html"
  },
  "permissions": ["sidePanel"]
}

Chiavi manifest

Di seguito è riportato un elenco di tutte le chiavi manifest supportate.

Chiavi richieste dalla piattaforma Estensioni

"manifest_version"
Un numero intero che specifica la versione del formato del file manifest utilizzato dall'estensione. L'unico valore supportato è 3.
"name"
Una stringa che identifica l'estensione nel Chrome Web Store, nella finestra di dialogo di installazione e nella pagina Estensioni di Chrome dell'utente (chrome://extensions). La lunghezza massima è di 75 caratteri. Per informazioni sull'utilizzo di nomi specifici per le impostazioni internazionali, consulta Internazionalizzazione.
"version"
Una stringa che identifica il numero di versione dell'estensione. Per informazioni sulla formattazione del numero di versione, consulta Versione.

Chiavi richieste dal Chrome Web Store

"description"
Una stringa che descrive l'estensione sia sul Chrome Web Store sia sulla pagina di gestione delle estensioni dell'utente. La lunghezza massima è di 132 caratteri. Per informazioni sulla localizzazione delle descrizioni, consulta Internazionalizzazione.
"icons"
Una o più icone che rappresentano l'estensione. Per informazioni sulle best practice, consulta Icone.

Chiavi facoltative

"action"
Definisce l'aspetto e il comportamento dell'icona dell'estensione nella barra degli strumenti di Google. Per ulteriori informazioni, vedi chrome.action.
"author"
Specifica l'indirizzo email dell'account utilizzato per creare l'estensione.
"background"
Specifica il file JavaScript contenente il worker di servizio dell'estensione, che funge da gestore eventi. Per saperne di più, consulta Informazioni sui service worker delle estensioni.
"chrome_settings_overrides"
Definisce le sostituzioni per le impostazioni di Chrome selezionate. Per ulteriori informazioni, vedi Ignorare le impostazioni di Chrome.
"chrome_url_overrides"
Definisce le sostituzioni per le pagine predefinite di Chrome. Per ulteriori informazioni, consulta Sostituire le pagine di Chrome.
"commands"
Definisce le scorciatoie da tastiera all'interno dell'estensione. Per ulteriori informazioni, consulta chrome.commands.
"content_scripts"
Specifica i file JavaScript o CSS da utilizzare quando l'utente apre determinate pagine web. Per ulteriori informazioni, consulta Script di contenuti.
"content_security_policy"
Definisce le restrizioni relative agli script, agli stili e ad altre risorse che un'estensione può utilizzare. Per ulteriori informazioni, consulta le norme sulla sicurezza dei contenuti.
"cross_origin_embedder_policy"
Specifica un valore per l'intestazione HTTP Cross-Origin-Embedder-Policy, che configura l'incorporamento di risorse cross-origin in una pagina dell'estensione.
"cross_origin_opener_policy"
Specifica un valore per l'intestazione HTTP Cross-Origin-Opener-Policy, che consente di verificare che una pagina dell'estensione di primo livello non condivida un gruppo di contesti di navigazione con documenti cross-origin.
"declarative_net_request"
Definisce regole statiche per l'API declarativeNetRequest, che consente di bloccare e modificare le richieste di rete.
"default_locale"
Una stringa che definisce la lingua predefinita di un'estensione che supporta più impostazioni internazionali. Alcuni esempi sono "en" e "pt_BR". Questa chiave è obbligatoria nelle estensioni localizzate e non deve essere utilizzata nelle estensioni non localizzate. Per ulteriori informazioni, consulta Internazionalizzazione.
"devtools_page"
Definisce le pagine che utilizzano le API DevTools.
"export"
Consente l'esportazione delle risorse dall'estensione. Per ulteriori informazioni, consulta Esporta.
"externally_connectable"
Specifica quali altre pagine ed estensioni possono connettersi alle tue estensioni. Per maggiori informazioni, vedi "externally_connectable".
"homepage_url"
Una stringa che specifica un URL per la home page dell'estensione. Se non è definito, la home page predefinita è la pagina del Chrome Web Store dell'estensione. Questo campo è particolarmente utile se hosti l'estensione sul tuo sito.
"host_permissions"
Elenca le pagine web con cui l'estensione è autorizzata a interagire, definite utilizzando pattern di corrispondenza dell'URL. L'autorizzazione utente per questi siti viene richiesta al momento dell'installazione. Per ulteriori informazioni, vedi Autorizzazioni host.
"import"
Consente l'importazione delle risorse nell'estensione. Per ulteriori informazioni, consulta Importa.
"incognito"
Definisce il comportamento dell'estensione in modalità di navigazione in incognito. I valori supportati sono "spanning", "split" e "not_allowed". Per ulteriori informazioni, consulta Navigazione in incognito.
"key"
Specifica l'ID dell'estensione per vari casi d'uso di sviluppo. Per maggiori informazioni, consulta Chiave.
"minimum_chrome_version"
Definisce la versione di Chrome più vecchia che può installare l'estensione. Il valore deve essere una sottostringa di una stringa della versione del browser Chrome esistente, ad esempio "107" o "107.0.5304.87". Gli utenti con versioni di Chrome precedenti alla versione minima visualizzano un avviso "Non compatibile" nel Chrome Web Store e non possono installare l'estensione. Se aggiungi questa funzionalità a un'estensione esistente, gli utenti con una versione precedente di Chrome non riceveranno aggiornamenti automatici dell'estensione. Sono inclusi gli utenti aziendali in modalità temporanea.
"oauth2"
Consente l'utilizzo di un ID sicurezza OAuth 2.0. Il valore di questa chiave deve essere un oggetto con proprietà "client_id" e "scopes". Per maggiori dettagli, consulta il tutorial su OAuth 2.0.
"omnibox"
Consente all'estensione di registrare una parola chiave nella barra degli indirizzi di Chrome. Per maggiori informazioni, consulta la sezione Omnibox.
"optional_host_permissions"
Dichiara le autorizzazioni dell'host facoltative per la tua estensione.
"optional_permissions"
Dichiarare le autorizzazioni facoltative per l'estensione.
"options_page"
Specifica il percorso di un file options.html da utilizzare come pagina di opzioni per l'estensione. Per saperne di più, vedi Offrire opzioni agli utenti.
"options_ui"
Specifica il percorso di un file HTML che consente a un utente di modificare le opzioni dell'estensione dalla pagina Estensioni di Chrome. Per ulteriori informazioni, consulta Opzioni integrate.
"permissions"
Consente l'utilizzo di API di estensioni specifiche. Per una spiegazione generale, consulta la sezione Autorizzazioni. Le pagine di riferimento per le singole API elencano le autorizzazioni richieste.
"requirements"
Elenca le tecnologie necessarie per utilizzare l'estensione. Per un elenco dei requisiti supportati, consulta Requisiti.
"sandbox"
Definisce un insieme di pagine di estensioni che non hanno accesso alle API di estensioni o accesso diretto alle pagine non in sandbox. Per ulteriori informazioni, consulta la sezione Sandbox.
"short_name"
Una stringa contenente una versione abbreviata del nome dell'estensione da utilizzare quando lo spazio per i caratteri è limitato. La lunghezza massima è di 12 caratteri. Se non è definito, viene visualizzata una versione troncata della chiave "name".
"side_panel"
Identifica un file HTML da visualizzare in un sidePanel.
"storage"
Dichiara uno schema JSON per l'area di archiviazione gestita. Per ulteriori informazioni, consulta Manifest per le aree di archiviazione.
"tts_engine"
Registra l'estensione come motore di sintesi vocale. Per ulteriori informazioni, consulta l'API ttsEngine.
"update_url"
Una stringa contenente l'URL della pagina degli aggiornamenti dell'estensione. Utilizza questa chiave se hosti l'estensione al di fuori del Chrome Web Store.
"version_name"
Una stringa che descrive la versione dell'estensione. Alcuni esempi sono "1.0 beta" e "build rc2". Se non è specificato, nella pagina di gestione dell'estensione viene visualizzato il valore "version".
"web_accessible_resources"
Definisce i file all'interno dell'estensione a cui possono accedere le pagine web o altre estensioni. Per ulteriori informazioni, consulta la sezione Risorse accessibili sul web.

Chiavi facoltative di ChromeOS

"file_browser_handlers"
Fornisce l'accesso all'API fileBrowserHandler, che consente alle estensioni di accedere al browser dei file di ChromeOS.
"file_handlers"
Specifica i tipi di file da gestire dalle estensioni di ChromeOS. Per ulteriori informazioni, consulta file_handlers.
"file_system_provider_capabilities"
Consente di accedere all'API fileSystemProvider, che consente alle estensioni di creare file system utilizzabili da ChromeOS.
"input_components"
Consente l'utilizzo dell'API Input Method Editor. Per ulteriori informazioni, consulta input_components.