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

Свойство манифеста 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 никогда не будет установлен ни при каких обстоятельствах.