Свойство манифеста externally_connectable
объявляет, какие расширения, приложения и веб-страницы могут подключаться к вашему приложению через runtime.connect
и runtime.sendMessage
.
Учебное пособие по передаче сообщений см. в разделах «Кросс-расширение», «Обмен сообщениями приложений и отправка сообщений с веб-страниц» .
Подключение без external_connectable
Если externally_connectable
не объявлен в манифесте вашего приложения, все расширения и приложения могут подключаться, но никакие веб-страницы не могут подключаться. Как следствие, при обновлении вашего манифеста для использования externally_connectable
, если "ids": ["*"]
не указан, другие расширения и приложения потеряют возможность подключаться к вашему приложению. Это может быть непредвиденным последствием, так что имейте это в виду.
Пример манифеста.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
},
...
}
Ссылка
Ключ манифеста externally_connectable может иметь следующие свойства:
ids
(массив строк) – необязательноИдентификаторы расширений или приложений, которым разрешено подключение. Если оставить пустым или не указать, никакие расширения или приложения не смогут подключиться.
Подстановочный знак
"*"
разрешит подключение всех расширений и приложений.matches
(массив строк) – необязательноШаблоны URL-адресов веб-страниц , к которым разрешено подключение. Это не влияет на сценарии контента. Если оставить пустым или не указать, ни одна веб-страница не сможет подключиться.
Шаблоны не могут включать домены с подстановочными знаками или поддомены (эффективных) доменов верхнего уровня ;
*://google.com/*
иhttps://*.chromium.org/*
действительны, а<all_urls>
,https://*/*
,*://*.com/*
и дажеhttps://*.appspot.com/*
нет.accepts_tls_channel_id
(логическое значение) — необязательноЕсли
true
, сообщения, отправленные черезruntime.connect
илиruntime.sendMessage
будут устанавливатьruntime.MessageSender.tlsChannelId
, если эти методы запрашивают это. Еслиfalse
,runtime.MessageSender.tlsChannelId
никогда не будет установлен ни при каких обстоятельствах.