La propiedad del manifiesto externally_connectable
declara qué extensiones, apps y páginas web se pueden
conéctate a la app a través de 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 app, todas las extensiones y apps pueden
conectarse, 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 app. Esta puede ser una consecuencia no deseada, así que tenla en cuenta.
Archivo manifest.json de ejemplo
{
"name": "My externally connectable app",
"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/*
yhttps://*.chromium.org/*
son válidos, mientras que<all_urls>
,https://*/*
,*://*.com/*
y hastahttps://*.appspot.com/*
no lo son.accepts_tls_channel_id
(booleano): opcionalSi es
true
, se establecerán los mensajes enviados a través deruntime.connect
oruntime.sendMessage
runtime.MessageSender.tlsChannelId
si esos métodos lo solicitan. Si esfalse
, Nunca se estableceráruntime.MessageSender.tlsChannelId
en ninguna circunstancia.