La propiedad externally_connectable
del manifiesto declara qué extensiones, apps y páginas web pueden
conectarse a tu extensión a través de runtime.connect y runtime.sendMessage.
Si quieres ver un instructivo sobre el paso de mensajes, consulta Mensajes entre extensiones y apps y Envía mensajes desde páginas web.
Conexión sin external_connectable
Si no se declara externally_connectable
en el manifiesto de la extensión, se podrán conectar todas las extensiones y apps, pero ninguna página web podrá conectarse. Como consecuencia, cuando actualices tu manifiesto para usar
externally_connectable
, si no se especifica "ids": ["*"]
, las demás extensiones y apps
ya no podrán conectarse a tu extensión. Esta puede ser una consecuencia no deseada, así que ténlala en mente.
Ejemplo de manifest.json
{
"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
},
...
}
Reference
La clave del manifiesto conectable externamente puede tener las siguientes propiedades:
ids
(arreglo de string) (opcional)Los IDs de las extensiones o aplicaciones que tienen permitido conectarse. Si se deja vacío o no se especifica, no se podrá conectar ninguna extensión ni app.
El comodín
"*"
permitirá que todas las extensiones y aplicaciones se conecten.matches
(arreglo de string) (opcional)Indica los patrones de URL de las páginas web que pueden conectarse. Esto no afecta a las secuencias de comandos del contenido. Si se deja vacío o no se especifica, no se podrá conectar ninguna página web.
Los patrones no pueden incluir dominios de comodín ni subdominios de dominios de nivel superior(efectivos).
*://google.com/*
yhttp://*.chromium.org/*
son válidos, mientras que<all_urls>
,http://*/*
,*://*.com/*
yhttp://*.appspot.com/*
no lo son.accepts_tls_channel_id
(booleano): opcionalSi es
true
, los mensajes enviados a través de runtime.connect o runtime.sendMessage configurarán runtime.MessageSender.tlsChannelId si esos métodos lo solicitan. Si esfalse
, nunca se establecerá runtime.MessageSender.tlsChannelId en ninguna circunstancia.