externally_connectable

Die Manifest-Property "externally_connectable" legt fest, welche Erweiterungen und Webseiten mithilfe von runtime.connect() und runtime.sendMessage() eine Verbindung zu Ihrer Erweiterung herstellen können.

Eine Anleitung zur Nachrichtenweitergabe finden Sie unter Erweiterungsübergreifendes Messaging und Nachrichten von Webseiten senden.

Ohne external_connectable verbinden

Ist der Schlüssel „externally_connectablenicht im Manifest Ihrer Erweiterung deklariert, können alle Erweiterungen eine Verbindung herstellen, Webseiten jedoch nicht. Wenn Sie Ihr Manifest zur Verwendung von externally_connectable aktualisieren und "ids": ["*"] nicht angegeben ist, können andere Erweiterungen keine Verbindung zu Ihrer Erweiterung herstellen. Dies kann eine unbeabsichtigte Folge sein, die Sie im Hinterkopf behalten sollten.

Manifest

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

Referenz

Der Manifestschlüssel "externally_connectable" enthält die folgenden optionalen Eigenschaften:

"ids"
Die IDs der Erweiterungen, die eine Verbindung herstellen dürfen. Ist das Feld leer oder nicht angegeben, können keine Erweiterungen oder Apps verbunden werden. Der Platzhalter "*" erlaubt eine Verbindung aller Erweiterungen und Apps.
"matches"
Die URL-Muster für Webseiten, die eine Verbindung herstellen dürfen. Wenn das Feld leer gelassen oder nicht angegeben wird, können keine Webseiten verbunden werden. Muster dürfen keine Platzhalterdomains oder Subdomains von (effektiven) Top-Level-Domains enthalten. Beispiele:
✅ Gültige URLs ❌ Ungültige URLs
*://example.com/ *://example.com/one/
http://*.example.org/* <all_urls>
https://example.com/* http://*/*
"accepts_tls_channel_id"
Die Erweiterung kann die TLS-Kanal-ID der Webseite verwenden, die eine Verbindung zu ihr herstellt. Außerdem muss die Webseite die TLS-Kanal-ID an die Erweiterung senden. Dazu setzen Sie includeTlsChannelId in den Optionen von „runtime.connect“ connectInfo oder „runtime.sendMessage“ auf true. Wenn dieser Wert auf false gesetzt ist, wird runtime.MessageSender.tlsChannelId unter keinen Umständen festgelegt.

Dies hat keine Auswirkungen auf Content-Scripts.