externally_connectable

La proprietà manifest externally_connectable dichiara quali estensioni, app e pagine web possono connettiti all'estensione tramite runtime.connect e runtime.sendMessage.

Per un tutorial sulla trasmissione di messaggi, vedi Messaggistica per app e con estensioni incrociate e Inviare messaggi dalle pagine web.

Connessione senza collegamento esterno

Se externally_connectable non è dichiarato nel file manifest dell'estensione, tutte le estensioni e le app possono connettersi, ma nessuna pagina web riesce a connettersi. Di conseguenza, quando aggiorni il manifest per utilizzare externally_connectable, se "ids": ["*"] non è specificato, le altre estensioni e app non potranno più connettersi all'estensione. Questa potrebbe essere una conseguenza involontaria, quindi mantienila mente.

File manifest.json di esempio

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

Riferimento

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

  • ids (array di stringa) - facoltativo

    Gli ID delle estensioni o delle app autorizzate a connettersi. Se il campo viene lasciato vuoto o non specificato, estensioni o app possono connettersi.

    Il carattere jolly "*" consentirà la connessione di tutte le estensioni e le app.

  • matches (array di stringa) - facoltativo

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

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

  • accepts_tls_channel_id (booleano) - facoltativo

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