Свойство манифеста "externally_connectable" объявляет, какие расширения и веб-страницы могут подключаться к вашему расширению с помощью runtime.connect() и runtime.sendMessage() .
Учебное пособие по передаче сообщений см. в разделе «Обмен сообщениями между расширениями и отправка сообщений с веб-страниц» .
Подключаться без external_connectable
Если ключ externally_connectable не объявлен в манифесте вашего расширения, все расширения смогут подключиться, но ни одна веб-страница не сможет подключиться. Как следствие, при обновлении вашего манифеста для использования externally_connectable , если "ids": ["*"] не указан, другие расширения потеряют возможность подключаться к вашему расширению. Это может быть непредвиденным последствием, так что имейте это в виду.
Манифест
{
"name": "My externally connectable extension",
"externally_connectable": {
"ids": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
...
],
// If this field is not specified, no web pages can connect.
"matches": [
"https://*.google.com/*",
"*://*.chromium.org/*",
...
],
"accepts_tls_channel_id": false
},
...
}
Ссылка
Ключ манифеста "externally_connectable" включает следующие дополнительные свойства:
-
"ids" - Идентификаторы расширений, которым разрешено подключение. Если оставить пустым или не указать, никакие расширения или приложения не смогут подключиться. Подстановочный знак
"*"разрешит подключение всех расширений и приложений. -
"matches" - Шаблоны URL-адресов веб-страниц , к которым разрешено подключение. Если оставить пустым или не указать, ни одна веб-страница не сможет подключиться. Шаблоны не могут включать домены с подстановочными знаками или поддомены (эффективных) доменов верхнего уровня , например:
| ✅ Действительные URL-адреса | ❌ Неверные URL-адреса |
|---|---|
*://example.com/ | *://example.com/one/ |
http://*.example.org/* | <all_urls> |
https://example.com/* | http://*/* |
-
"accepts_tls_channel_id" - Позволяет расширению использовать идентификатор канала TLS веб-страницы, подключающейся к нему. Веб-страница также должна выбрать отправку идентификатора канала TLS в расширение, установив для
includeTlsChannelIdзначениеtrueв параметрах ConnectInfo или runtime.sendMessage файла runtime.connect. Если установлено значениеfalse, runtime.MessageSender.tlsChannelId никогда не будет установлен ни при каких обстоятельствах.
Это не влияет на сценарии контента.