externally_connectable

La proprietà manifest externally_connectable dichiara quali estensioni, app e pagine web possono connettersi alla tua app tramite runtime.connect e runtime.sendMessage.

Per un tutorial sulla trasmissione dei messaggi, vedi messaggi relativi a estensioni e app e invio di messaggi da pagine web.

Connessione senza external_connectable

Se externally_connectable non viene dichiarato nel file manifest dell'app, tutte le estensioni e le app possono connettersi, ma nessuna pagina web può collegarsi. Di conseguenza, quando aggiorni il file manifest per utilizzare externally_connectable, se "ids": ["*"] non è specificato, altre estensioni e app perderanno la possibilità di connettersi alla tua app. Questa potrebbe essere una conseguenza imprevista, quindi tienila presente.

File manifest.json di esempio

{
  "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
  },
  ...
}

Riferimento

La chiave manifest external_connectable può avere le seguenti proprietà:

  • ids (array di stringhe): facoltativo

    Gli ID delle estensioni o delle app a cui è consentito connettersi. Se il campo viene lasciato vuoto o non specificato, non è possibile connettere alcuna estensione o app.

    Il carattere jolly "*" consentirà a tutte le estensioni e le app di connettersi.

  • matches (array di stringhe): facoltativo

    I pattern URL per le pagine web a cui è consentito connettersi. Questo non influisce sugli script dei contenuti. Se il campo viene lasciato vuoto o non specificato, nessuna pagina web può connettersi.

    I pattern non possono includere domini con caratteri jolly né sottodomini di domini di primo livello(effettiva); *://google.com/* e https://*.chromium.org/* sono validi, mentre <all_urls>, https://*/*, *://*.com/* e persino https://*.appspot.com/* non lo sono.

  • accepts_tls_channel_id (booleano) - Facoltativo

    Se true, i messaggi inviati tramite runtime.connect o runtime.sendMessage verranno impostati su runtime.MessageSender.tlsChannelId se questi metodi lo richiedono. Se false, runtime.MessageSender.tlsChannelId non verrà mai impostato in nessuna circostanza.