внешне_подключаемый

Свойство манифеста externally_connectable определяет, какие расширения, приложения и веб-страницы могут подключаться к вашему расширению через runtime.connect и runtime.sendMessage .

Учебное пособие по передаче сообщений см. в разделах «Кросс-расширение», «Обмен сообщениями приложений и отправка сообщений с веб-страниц» .

Подключение без external_connectable

Если externally_connectable не объявлен в манифесте вашего расширения, все расширения и приложения могут подключаться, но никакие веб-страницы не могут подключаться. Как следствие, при обновлении манифеста для использования externally_connectable , если "ids": ["*"] не указан, другие расширения и приложения потеряют возможность подключаться к вашему расширению. Это может быть непредвиденным последствием, так что имейте это в виду.

Пример манифеста.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
  },
  ...
}

Ссылка

Ключ манифеста externally_connectable может иметь следующие свойства:

  • ids (массив строк) – необязательно

    Идентификаторы расширений или приложений, которым разрешено подключение. Если оставить пустым или не указать, никакие расширения или приложения не смогут подключиться.

    Подстановочный знак "*" разрешит подключение всех расширений и приложений.

  • matches (массив строк) – необязательно

    Шаблоны URL-адресов веб-страниц , к которым разрешено подключение. Это не влияет на сценарии контента. Если оставить пустым или не указать, ни одна веб-страница не сможет подключиться.

    Шаблоны не могут включать домены с подстановочными знаками или поддомены (эффективных) доменов верхнего уровня ; *://google.com/* и http://*.chromium.org/* действительны, а <all_urls> , http://*/* , *://*.com/* и даже http://*.appspot.com/* нет.

  • accepts_tls_channel_id (логическое значение) — необязательно

    Если true , сообщения, отправленные через runtime.connect или runtime.sendMessage, будут устанавливать runtime.MessageSender.tlsChannelId , если эти методы запрашивают это. Если false , runtime.MessageSender.tlsChannelId никогда не будет установлен ни при каких обстоятельствах.