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