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) – opcjonalnie- Identyfikatory 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) – opcjonalnie- Wzorce 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/*i- http://*.chromium.org/*, a- <all_urls>,- http://*/*,- *://*.com/*, a nawet- http://*.appspot.com/*nie.
- accepts_tls_channel_id(wartość logiczna) – opcjonalna- Jeś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śli- false, Parametr runtime.MessageSender.tlsChannelId nigdy nie zostanie ustawiony w żadnym przypadku.