externally_connectable

Właściwość manifestu "externally_connectable" deklaruje, które rozszerzenia i strony internetowe mogą połączyć się z rozszerzeniem za pomocą narzędzi runtime.connect() i runtime.sendMessage().

Aby uzyskać samouczek na temat przekazywania wiadomości, zapoznaj się z artykułami na temat wysyłania wiadomości między rozszerzeniami i wysyłaniem wiadomości ze stron internetowych.

Połącz bez połączenia z zewnątrz

Jeśli klucz externally_connectable nie jest zadeklarowany w pliku manifestu rozszerzenia, wszystkie rozszerzenia mogą się łączyć, ale żadne strony internetowe nie mogą nawiązać połączenia. W rezultacie, gdy aktualizujesz plik manifestu, aby używał externally_connectable, jeśli nie określisz wartości "ids": ["*"], inne rozszerzenia będą utracisz możliwość łączenia się z rozszerzeniem. Może to być niezamierzonym konsekwencją, dlatego zachowaj je umysł.

Plik manifestu

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

Dokumentacja

Klucz manifestu "externally_connectable" zawiera te opcjonalne właściwości:

"ids"
Identyfikatory rozszerzeń, które mogą się łączyć. Jeśli pole pozostanie puste lub nieokreślone, żadne rozszerzenia ani aplikacje nie będą mogły się połączyć. Symbol wieloznaczny "*" umożliwia łączenie się wszystkich rozszerzeń i aplikacji.
"matches"
Wzorce adresów URL stron internetowych, które mogą się łączyć. 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, na przykład:
✅ Prawidłowe adresy URL ❌ Nieprawidłowe URL-e
*://example.com/ *://example.com/one/
http://*.example.org/* <all_urls>
https://example.com/* http://*/*
"accepts_tls_channel_id"
Umożliwia rozszerzeniu używanie identyfikatora kanału TLS strony internetowej, która się z nią łączy. Strona internetowa musi też włączyć opcję wysłania identyfikatora kanału TLS do rozszerzenia, ustawiając odpowiednią opcję. Z includeTlsChannelId do true w connectInfo lub opcjach środowiska runtime.connect. Jeśli ma wartość false, Parametr runtime.MessageSender.tlsChannelId nigdy nie zostanie ustawiony w żadnym przypadku.

Nie ma to wpływu na skrypty treści.