La propiedad del manifiesto "externally_connectable"
declara qué extensiones y páginas web se pueden conéctate a tu extensión con runtime.connect()
y runtime.sendMessage()
.
Para ver un instructivo sobre el envío de mensajes, consulta Mensajes entre extensiones y Cómo enviar mensajes de páginas web.
Conéctate sin external_connectable
Si no se declara la clave externally_connectable
en el manifiesto de tu extensión, todas las extensiones podrán conectarse, pero ninguna página web podrá hacerlo. Por ello, cuando actualices tu manifiesto para usar externally_connectable
, si no se especifica "ids": ["*"]
, se aplicarán otras extensiones ya no podrán conectarse a tu extensión. Esta puede ser una consecuencia no deseada, así que manténgalo en en la mente.
Manifiesto
{ "name": "My externally connectable extension", "externally_connectable": { "ids": [ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", ... ], // If this field is not specified, no web pages can connect. "matches": [ "https://*.google.com/*", "*://*.chromium.org/*", ... ], "accepts_tls_channel_id": false }, ... }
Referencia
La clave del manifiesto "externally_connectable"
incluye las siguientes propiedades opcionales:
"ids"
- Los IDs de las extensiones que pueden conectarse. Si se deja vacío o no se especifica, no se podrá conectar ninguna extensión o app. El comodín
"*"
permitirá que todas las extensiones y apps se conecten. "matches"
- Los patrones de URL de las páginas web que pueden conectarse. 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(eficaces), por ejemplo:
✅ URLs válidas | ❌ URLs no válidas |
---|---|
*://example.com/ | *://example.com/one/ |
http://*.example.org/* | <all_urls> |
https://example.com/* | http://*/* |
"accepts_tls_channel_id"
- Permite que la extensión use el ID del canal TLS de la página web que se conecta a ella. La página web también debe habilitar la opción para enviar el ID del canal de TLS a la extensión estableciendo
includeTlsChannelId
atrue
las opciones connectInfo de runtime.sendMessageen runtime.connect. Si se establece enfalse
, runtime.MessageSender.tlsChannelId nunca se establecerá en ninguna circunstancia.
Esto no afecta las secuencias de comandos del contenido.