La propiedad del manifiesto externally_connectable
declara qué extensiones, apps y páginas web se pueden
conectarte a tu extensión mediante runtime.connect y runtime.sendMessage.
Para ver un instructivo sobre el envío de mensajes, consulta Mensajes entre extensiones y apps y Cómo enviar mensajes de páginas web.
Conéctate sin external_connectable
Si no se declara externally_connectable
en el manifiesto de tu extensión, todas las extensiones y apps
se puede conectar, pero ninguna página web puede hacerlo. Por ello, cuando actualices tu manifiesto para usar
externally_connectable
, si no se especifica "ids": ["*"]
, se aplicarán otras extensiones y apps
ya no podrán conectarse a tu extensión. Esta puede ser una consecuencia no deseada, así que manténgalo en
en la mente.
Archivo manifest.json de ejemplo
{
"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
},
...
}
Referencia
La clave de manifiesto external_connectable puede tener las siguientes propiedades:
ids
(array de cadenas): opcionalLos ID de las extensiones o aplicaciones que pueden conectarse. Si se deja vacío o no se especifica, no extensiones o apps pueden conectarse.
El comodín
"*"
permitirá que todas las extensiones y aplicaciones se conecten.matches
(array de cadenas): opcionalSon los patrones de URL de las páginas web que pueden conectarse. Esto no afecta el contenido secuencias de comandos. Si se deja vacío o no se especifica, ninguna página web puede conectarse.
Los patrones no pueden incluir dominios comodín ni subdominios de dominios de nivel superior(efectivos).
*://google.com/*
yhttp://*.chromium.org/*
son válidos, mientras que<all_urls>
,http://*/*
,*://*.com/*
y hastahttp://*.appspot.com/*
no lo son.accepts_tls_channel_id
(booleano): opcionalSi es
true
, se configurarán los mensajes enviados a través de runtime.connect o runtime.sendMessage runtime.MessageSender.tlsChannelId si esos métodos lo solicitan. Si esfalse
, runtime.MessageSender.tlsChannelId nunca se establecerá en ninguna circunstancia.