externally_connectable

Die Manifest-Property externally_connectable gibt an, welche Erweiterungen, Apps und Webseiten über runtime.connect und runtime.sendMessage eine Verbindung zu Ihrer App herstellen können.

Eine Anleitung zur Weitergabe von Nachrichten finden Sie unter Erweiterungs- und App-Messaging und Nachrichten über Webseiten senden.

Verbindung ohne external_connectable herstellen

Wenn externally_connectable nicht im Manifest Ihrer App deklariert ist, können alle Erweiterungen und Apps eine Verbindung herstellen, Webseiten jedoch nicht. Wenn Sie Ihr Manifest aktualisieren, um externally_connectable zu verwenden und "ids": ["*"] nicht angegeben ist, können andere Erweiterungen und Apps keine Verbindung zu Ihrer App herstellen. Das kann eine unbeabsichtigte Folge sein.

Beispiel für „manifest.json“

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

Referenz

Der Manifestschlüssel „external_connectable“ kann die folgenden Attribute haben:

  • ids (Array des Strings): optional

    Die IDs der Erweiterungen oder Apps, die eine Verbindung herstellen dürfen. Bleibt das Feld leer oder nicht angegeben, können keine Erweiterungen oder Apps eine Verbindung herstellen.

    Der Platzhalter "*" lässt alle Erweiterungen und Apps zu, eine Verbindung herzustellen.

  • matches (Array des Strings): optional

    Die URL-Muster für Webseiten, die eine Verbindung herstellen dürfen. Dies hat keine Auswirkungen auf Content-Skripts. Wenn das Feld leer oder nicht angegeben ist, können keine Webseiten eine Verbindung herstellen.

    Muster dürfen keine Platzhalterdomains oder Subdomains von effektiven Top-Level-Domains enthalten. *://google.com/* und https://*.chromium.org/* sind gültig, <all_urls>, https://*/*, *://*.com/* und sogar https://*.appspot.com/* nicht.

  • accepts_tls_channel_id (boolesch) – optional

    Bei true wird für über runtime.connect oder runtime.sendMessage gesendete Nachrichten runtime.MessageSender.tlsChannelId festgelegt, wenn dies von diesen Methoden angefordert wird. Bei false wird runtime.MessageSender.tlsChannelId unter keinen Umständen festgelegt.