externally_connectable

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 na true 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.