externally_connectable

Die Manifest-Property "externally_connectable" deklariert, welche Erweiterungen und Webseiten stellen Sie mit runtime.connect() und runtime.sendMessage() eine Verbindung zu Ihrer Erweiterung her.

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

Ohne „external_connectable“ verbinden

Wenn der externally_connectable-Schlüssel im Manifest der Erweiterung nicht deklariert ist, können alle Erweiterungen eine Verbindung herstellen, aber keine Webseiten. Wenn Sie Ihr Manifest aktualisieren, externally_connectable: Wenn "ids": ["*"] nicht angegeben ist, werden andere Erweiterungen können Sie keine Verbindung mehr mit Ihrer Erweiterung herstellen. Dies könnte eine unbeabsichtigte Folge sein, also belassen Sie es im Hinterkopf, denken.

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 Attribute:

"ids"
Die IDs der Erweiterungen, die eine Verbindung herstellen dürfen. Wenn das Feld leer oder nicht angegeben ist, können keine Erweiterungen oder Apps verbunden werden. Mit dem Platzhalter "*" können alle Erweiterungen und Apps eine Verbindung herstellen.
"matches"
Die URL-Muster für Webseiten, die eine Verbindung herstellen dürfen. Wenn das Feld leer oder nicht angegeben ist, können keine Webseiten verbunden werden. Muster dürfen keine Platzhalter-Domains oder Subdomains von (effektiven) Top-Level-Domains enthalten, zum Beispiel:
✅ Gültige URLs ❌ Ungültige URLs
*://example.com/ *://example.com/one/
http://*.example.org/* <all_urls>
https://example.com/* http://*/*
"accepts_tls_channel_id"
Damit kann die Erweiterung die TLS-Kanal-ID der Webseite verwenden, die eine Verbindung zu ihr herstellt. Auf der Webseite muss außerdem festgelegt werden, dass die TLS-Kanal-ID an die Erweiterung gesendet werden soll. includeTlsChannelId in true in den connectInfo von „runtime.connect“ oder in den Optionen von „runtime.sendMessage“. Wenn false festgelegt ist, gilt Folgendes: runtime.MessageSender.tlsChannelId wird unter keinen Umständen festgelegt.

Dies hat keine Auswirkungen auf Inhaltsskripte.