Formato file manifest

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

Esempi

I seguenti manifest di esempio mostrano la sua struttura di base e alcune funzionalità comunemente utilizzate come punto di partenza per la creazione di un 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"
  },
}

Registrare 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//"
      ]
    }
  ]
}

Inserisci 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 Extensions

"manifest_version"
Un numero intero che specifica la versione del formato del file manifest utilizzato dalla tua 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 nel Chrome Web Store sia nella pagina di gestione delle estensioni dell'utente. La lunghezza massima è 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 la sezione 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 service worker dell'estensione, che funge da gestore di eventi. Per maggiori informazioni, consulta Informazioni sui worker del servizio estensioni.
"chrome_settings_overrides"
Definisci gli override per le impostazioni di Chrome selezionate. Per maggiori informazioni, consulta la sezione Override delle impostazioni di Chrome.
"chrome_url_overrides"
Definisci gli override per le pagine predefinite di Chrome. Per maggiori informazioni, consulta la pagina relativa all'override delle pagine di Chrome.
"commands"
Definisce le scorciatoie da tastiera all'interno dell'estensione. Per ulteriori informazioni, vedi chrome.commands.
"content_scripts"
Specifica i file JavaScript o CSS da utilizzare quando l'utente apre determinate pagine web. Per ulteriori informazioni, consulta la sezione Script di contenuti.
"content_security_policy"
Definisce le restrizioni relative a script, stili e altre risorse che un'estensione può utilizzare. Per ulteriori informazioni, consulta i criteri di sicurezza dei contenuti.
"cross_origin_embedder_policy"
Specifica un valore per l'intestazione HTTP Cross-Origin-Embedder-Policy, che configura l'incorporamento delle risorse multiorigine in una pagina di estensione.
"cross_origin_opener_policy"
Specifica un valore per l'intestazione HTTP Cross-Origin-Opener-Policy, che consente di assicurarsi che una pagina di estensione di primo livello non condivida un gruppo di contesti di navigazione con documenti multiorigine.
"declarative_net_request"
Definisce regole statiche per l'API declarativeNetRequest, che consente il blocco e la modifica delle 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 saperne di più, consulta Internazionalizzazione.
"devtools_page"
Definisci le pagine che utilizzano le API DevTools.
"export"
Consente di esportare le risorse dall'estensione. Per maggiori informazioni, consulta Esportazione.
"externally_connectable"
Specifica quali altre pagine ed estensioni possono collegarsi alle estensioni. Per ulteriori informazioni, vedi "externally_connectable".
"homepage_url"
Una stringa che specifica un URL per la home page dell'estensione. Se non è definita, per impostazione predefinita la home page corrisponde alla pagina del Chrome Web Store dell'estensione. Questo campo è particolarmente utile se ospita l'estensione sul tuo sito.
"host_permissions"
Elenca le pagine web con cui la tua estensione è autorizzata a interagire, definite mediante pattern di corrispondenza degli URL. L'autorizzazione dell'utente per questi siti viene richiesta al momento dell'installazione. Per maggiori informazioni, consulta Autorizzazioni host.
"import"
Consente di importare le risorse nell'estensione. Per maggiori informazioni, consulta Importazione.
"incognito"
Definisce il comportamento dell'estensione in modalità di navigazione in incognito. I valori supportati sono "spanning", "split" e "not_allowed". Per maggiori informazioni, vedi In incognito.
"key"
Specifica l'ID dell'estensione per vari casi d'uso di sviluppo. Per ulteriori informazioni, consulta la sezione Chiave.
"minimum_chrome_version"
Indica la versione meno recente di Chrome in cui è possibile installare l'estensione. Il valore deve essere una sottostringa di una stringa di versione del browser Chrome esistente, come "107" o "107.0.5304.87". Gli utenti con versioni di Chrome precedenti alla versione minima visualizzeranno l'avviso "Non compatibile" nel Chrome Web Store e non potranno installare l'estensione. Se lo aggiungi a un'estensione esistente, gli utenti la cui versione di Chrome è precedente non riceveranno aggiornamenti automatici per l'estensione. Sono inclusi gli utenti aziendali in modalità temporanea.
"oauth2"
Consente l'utilizzo di un ID di 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 per OAuth 2.0.
"omnibox"
Consente all'estensione di registrare una parola chiave nella barra degli indirizzi di Chrome. Per ulteriori informazioni, consulta la pagina omnibox.
"optional_host_permissions"
Dichiara le autorizzazioni host facoltative per l'estensione.
"optional_permissions"
Dichiara le autorizzazioni facoltative per l'estensione.
"options_page"
Specifica il percorso di un file options.html per l'utilizzo dell'estensione come pagina Opzioni. Per maggiori informazioni, consulta Offrire opzioni agli utenti.
"options_ui"
Specifica il percorso di un file HTML che consente a un utente di modificare le opzioni di estensione dalla pagina Estensioni di Chrome. Per maggiori informazioni, consulta la sezione Opzioni incorporate.
"permissions"
Abilita l'uso di API di estensioni specifiche. Per una spiegazione generale, consulta la sezione Autorizzazioni. Nelle pagine di riferimento delle singole API sono elencate le autorizzazioni richieste.
"requirements"
Elenca le tecnologie necessarie per utilizzare l'estensione. Per un elenco dei requisiti supportati, consulta la pagina Requisiti.
"sandbox"
Definisce un insieme di pagine di estensioni che non hanno accesso alle API delle estensioni o accesso diretto alle pagine senza sandbox. Per ulteriori informazioni, consulta Sandbox.
"short_name"
Una stringa contenente una versione abbreviata del nome dell'estensione da utilizzare quando lo spazio dei caratteri è limitato. La lunghezza massima è 12 caratteri. Se questo valore 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 il file manifest per le aree di archiviazione.
"tts_engine"
Registra l'estensione come motore di sintesi vocale. Per maggiori informazioni, consulta l'API ttsEngine.
"update_url"
Una stringa contenente l'URL della pagina degli aggiornamenti dell'estensione. Utilizza questa chiave se ospita l'estensione all'esterno 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 viene specificato, nella pagina di gestione delle estensioni viene visualizzato il valore della "versione".
"web_accessible_resources"
Definisce i file all'interno dell'estensione a cui possono accedere le pagine web o altre estensioni. Per ulteriori informazioni, vedi Risorse accessibili al web.

Chiavi ChromeOS facoltative

"file_browser_handlers"
Fornisce accesso all'API fileBrowserHandler, che consente alle estensioni di accedere al browser di file di ChromeOS.
"file_handlers"
Specifica i tipi di file che le estensioni di ChromeOS devono gestire. Per saperne di più, consulta la pagina file_handlers.
"file_system_provider_capabilities"
Consente l'accesso 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 maggiori informazioni, consulta input_components.