La proprietà manifest externally_connectable
dichiara quali estensioni, app e pagine web possono
connettersi all'estensione tramite runtime.connect e runtime.sendMessage.
Per un tutorial sulla trasmissione dei messaggi, vedi messaggi relativi a estensioni e app e invio di messaggi da pagine web.
Connessione senza external_connectable
Se externally_connectable
non viene dichiarato nel file manifest dell'estensione, tutte le estensioni e le app
possono connettersi, ma nessuna pagina web può collegarsi. Di conseguenza, quando aggiorni il file manifest per utilizzare
externally_connectable
, se "ids": ["*"]
non è specificato, altre estensioni e app
perderanno la possibilità di connettersi alla tua estensione. Questa potrebbe essere una conseguenza imprevista, quindi tienila a mente.
File manifest.json di esempio
{
"name": "My externally connectable extension",
"externally_connectable": {
// Extension and app IDs. If this field is not specified, no
// extensions or apps can connect.
"ids": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
...
// Alternatively, to match all extensions and apps, specify only
// "*".
"*"
],
// Match patterns for web pages. Does not affect content scripts.
// If this field is not specified, no webpages can connect.
"matches": [
"https://*.google.com/*",
"*://*.chromium.org/*",
...
],
// Indicates that the extension would like to make use of the TLS
// channel ID of the web page connecting to it. The web page must
// also opt to send the TLS channel ID to the extension via setting
// includeTlsChannelId to true in runtime.connect's connectInfo
// or runtime.sendMessage's options.
"accepts_tls_channel_id": false
},
...
}
Riferimento
La chiave manifest external_connectable può avere le seguenti proprietà:
ids
(array di stringhe): facoltativoGli ID delle estensioni o delle app a cui è consentito connettersi. Se il campo viene lasciato vuoto o non specificato, non è possibile connettere alcuna estensione o app.
Il carattere jolly
"*"
consentirà a tutte le estensioni e le app di connettersi.matches
(array di stringhe): facoltativoI pattern URL per le pagine web a cui è consentito connettersi. Questo non influisce sugli script dei contenuti. Se il campo viene lasciato vuoto o non specificato, nessuna pagina web può connettersi.
I pattern non possono includere domini con caratteri jolly né sottodomini di domini di primo livello(effettiva);
*://google.com/*
ehttp://*.chromium.org/*
sono validi, mentre<all_urls>
,http://*/*
,*://*.com/*
e persinohttp://*.appspot.com/*
non lo sono.accepts_tls_channel_id
(booleano) - FacoltativoSe
true
, i messaggi inviati tramite runtime.connect o runtime.sendMessage imposteranno runtime.MessageSender.tlsChannelId se questi metodi lo richiedono. Sefalse
, l'attributo runtime.MessageSender.tlsChannelId non verrà mai impostato in nessuna circostanza.