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"]
}
popup con le autorizzazioni
{
"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
.