externally_connectable

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éngala 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 a true las opciones connectInfo de runtime.sendMessageen runtime.connect. Si se establece en false, runtime.MessageSender.tlsChannelId nunca se establecerá bajo ninguna circunstancia.

Esto no afecta las secuencias de comandos del contenido.