externally_connectable

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.