externally_connectable

Właściwość manifestu externally_connectable deklaruje, które rozszerzenia, aplikacje i strony internetowe mogą połącz się z aplikacją 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 aplikacji nie ma zadeklarowanego externally_connectable, wszystkie rozszerzenia i aplikacje mogą ale żadne strony internetowe nie mogą nawiązać 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 aplikacją. Pamiętaj, że może to być niezamierzonym konsekwencją.

Przykładowy plik manifest.json

{
  "name": "My externally connectable app",
  "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 https://*.chromium.org/*, a <all_urls>, https://*/*, *://*.com/*, a nawet https://*.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, runtime.MessageSender.tlsChannelId nie zostanie nigdy ustawiony w żadnych okolicznościach.