externally_connectable

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

Samouczek dotyczący przekazywania wiadomości znajdziesz w artykule Komunikacja między rozszerzeniami i wysyłanie wiadomości ze stron internetowych.

Łączenie bez użycia właściwości externally_connectable

Jeśli klucz externally_connectable nie jest zadeklarowany w pliku manifestu rozszerzenia, wszystkie rozszerzenia mogą się łączyć, ale żadne strony internetowe nie mogą. W związku z tym, jeśli podczas aktualizowania pliku manifestu do używania externally_connectable nie określisz wartości "ids": ["*"], inne rozszerzenia utracą możliwość łączenia się z Twoim rozszerzeniem. Może to być niezamierzony skutek, więc pamiętaj o tym.

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 to pole jest puste lub nieokreślone, żadne rozszerzenia ani aplikacje nie mogą się łączyć. Symbol wieloznaczny "*" umożliwi łączenie się wszystkim rozszerzeniom i aplikacjom.
"matches"
Wzorce dopasowania stron internetowych, które mogą się łączyć. Jeśli to pole jest puste lub nieokreślone, żadne strony internetowe nie mogą się łączyć.
"accepts_tls_channel_id"
Umożliwia rozszerzeniu używanie identyfikatora kanału TLS strony internetowej, która się z nim łączy. Strona internetowa musi też wyrazić zgodę na wysyłanie identyfikatora kanału TLS do rozszerzenia, ustawiając includeTlsChannelId na true w connectInfo funkcji runtime.connect lub w opcjach funkcji runtime.sendMessage. Jeśli ustawisz wartość false, runtime.MessageSender.tlsChannelId nigdy nie zostanie ustawiona w żadnych okolicznościach.

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