Właściwość manifestu externally_connectable
deklaruje, które rozszerzenia, aplikacje i strony internetowe mogą
połącz się z rozszerzeniem przez runtime.connect i runtime.sendMessage.
Aby zapoznać się z samouczkiem na temat przekazywania wiadomości, zapoznaj się z artykułami o wysyłaniu wiadomości do aplikacji i o rozszerzeniach oraz o wysyłaniu wiadomości ze stron internetowych.
Łączenie bez połączenia zewnętrznego
Jeśli w pliku manifestu rozszerzenia nie ma zadeklarowanego externally_connectable
, wszystkie rozszerzenia i aplikacje
może nawiązać połączenie, ale żadna strona internetowa nie może nawiązać tego połączenia. W rezultacie, gdy aktualizujesz plik manifestu, aby używał
externally_connectable
, jeśli nie określisz wartości "ids": ["*"]
, inne rozszerzenia i aplikacje będą
utracisz możliwość łączenia się z rozszerzeniem. Może to być niezamierzonym konsekwencją, dlatego zachowaj je
umysł.
Przykładowy plik 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
},
...
}
Dokumentacja
Klucz manifestu zewnętrznie_connectable może mieć te właściwości:
ids
(tablica ciągu znaków) – opcjonalnieIdentyfikatory rozszerzeń lub aplikacji, które mogą się łączyć. Jeśli pole pozostanie puste lub nieokreślone, nie rozszerzenia i aplikacje, z którymi mogą się łączyć.
Symbol wieloznaczny
"*"
umożliwia łączenie wszystkich rozszerzeń i aplikacji.matches
(tablica ciągu znaków) – opcjonalnieWzorce adresów URL stron internetowych, które mogą się łączyć. Nie dotyczy to treści skryptów. Jeśli pole pozostanie puste lub nieokreślone, żadne strony internetowe nie będą mogły się połączyć.
Wzorce nie mogą zawierać domen z symbolami wieloznacznymi ani subdomen (efektywnych) domen najwyższego poziomu. Prawidłowe wartości:
*://google.com/*
ihttp://*.chromium.org/*
, a<all_urls>
,http://*/*
,*://*.com/*
, a nawethttp://*.appspot.com/*
nie.accepts_tls_channel_id
(wartość logiczna) – opcjonalnaJeśli zasada
true
, wiadomości wysyłane przez runtime.connect lub runtime.sendMessage zostaną ustawione. runtime.MessageSender.tlsChannelId, jeśli wymagają tego te metody. Jeślifalse
, Parametr runtime.MessageSender.tlsChannelId nigdy nie zostanie ustawiony w żadnym przypadku.