Die Manifesteigenschaft externally_connectable
deklariert, welche Erweiterungen, Apps und Webseiten über runtime.connect und runtime.sendMessage eine Verbindung zu Ihrer Erweiterung 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 der Erweiterung deklariert ist, können alle Erweiterungen und Apps 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 und Apps keine Verbindung zu Ihrer Erweiterung herstellen. Das kann eine unbeabsichtigte Folge sein, die Sie bedenken sollten.
Beispiel für „manifest.json“
{
"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
},
...
}
Referenz
Der Manifestschlüssel „external_connectable“ kann die folgenden Attribute haben:
ids
(Array des Strings): optionalDie 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): optionalDie 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/*
undhttp://*.chromium.org/*
sind gültig,<all_urls>
,http://*/*
,*://*.com/*
und sogarhttp://*.appspot.com/*
nicht.accepts_tls_channel_id
(boolesch) – optionalBei
true
wird bei über runtime.connect oder runtime.sendMessage gesendeten Nachrichten runtime.MessageSender.tlsChannelId festgelegt, wenn dies durch diese Methoden angefordert wird. Beifalse
wird runtime.MessageSender.tlsChannelId unter keinen Umständen festgelegt.