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_connectable
“ nicht 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“ auftrue
. Wenn dieser Wert auffalse
gesetzt ist, wird runtime.MessageSender.tlsChannelId unter keinen Umständen festgelegt.
Dies hat keine Auswirkungen auf Content-Scripts.