Właściwość w pliku manifestu "externally_connectable"
określa, które rozszerzenia i strony internetowe mogą się łączyć z rozszerzeniem za pomocą tagów runtime.connect()
i runtime.sendMessage()
.
Samouczek dotyczący przekazywania wiadomości znajdziesz w artykułach o wysyłaniu wiadomości w różnych rozszerzeniach i wysyłaniu wiadomości ze stron internetowych.
Połącz bez opcji external_connectable
Jeśli klucz externally_connectable
nie jest zadeklarowany w pliku manifestu rozszerzenia, wszystkie rozszerzenia mogą się łączyć, ale żadne strony internetowe nie mogą się łączyć. W związku z tym, gdy aktualizujesz plik manifestu tak, aby używał externally_connectable
, a "ids": ["*"]
nie jest określony, inne rozszerzenia utracą możliwość łączenia się z nim. Pamiętaj, że może to być niezamierzona konsekwencja.
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 pozostawisz tę wartość pustą lub nie określono jej wartości, żadne rozszerzenia ani aplikacje nie będą mogły się połączyć. Symbol wieloznaczny
"*"
umożliwi połączenie wszystkich rozszerzeń i aplikacji. "matches"
- Wzorce adresów URL stron internetowych, które mogą się łączyć. Jeśli pozostawisz tę wartość pustą lub nie określono, ż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 adresy URL |
---|---|
*://example.com/ |
*://example.com/one/ |
http://*.example.org/* |
<all_urls> |
https://example.com/* |
http://*/* |
"accepts_tls_channel_id"
- Umożliwia rozszerzeniu korzystanie z identyfikatora kanału TLS strony internetowej, która się z nim łączy. Strona internetowa musi też zdecydować się na wysłanie identyfikatora kanału TLS do rozszerzenia przez ustawienie wartości
includeTlsChannelId
natrue
w connectInfo środowiska wykonawczego wykonawczego lub w opcjach środowiska wykonawczego.sendMessage. Jeśli zasada ma wartośćfalse
, parametr runtime.MessageSender.tlsChannelId nigdy nie będzie ustawiany w żadnej sytuacji.
Nie ma to wpływu na skrypty zawartości.