A propriedade "externally_connectable" do manifesto declara quais extensões e páginas da Web podem
se conectar à sua extensão usando runtime.connect() e runtime.sendMessage().
Para um tutorial sobre transmissão de mensagens, consulte mensagens entre extensões e envio de mensagens de páginas da Web.
Conectar sem externally_connectable
Se a chave externally_connectable não estiver declarada no manifesto da extensão, todas as extensões poderão se conectar, mas nenhuma página da Web poderá. Como consequência, ao atualizar o manifesto para usar
externally_connectable, se "ids": ["*"] não for especificado, outras extensões vão
perder a capacidade de se conectar à sua extensão. Isso pode ser uma consequência não intencional, então tenha isso em mente.
Manifesto
{
"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
},
...
}
Referência
A chave de manifesto "externally_connectable" inclui as seguintes propriedades opcionais:
"ids"- Os IDs das extensões que podem se conectar. Se ficar em branco ou não for especificado, nenhuma extensão ou app poderá se conectar. O caractere curinga
"*"permite que todas as extensões e apps se conectem. "matches"- Os padrões de correspondência para páginas da Web que podem se conectar. Se estiver em branco ou não for especificado, nenhuma página da Web poderá se conectar.
"accepts_tls_channel_id"- Permite que a extensão use o ID do canal TLS da página da Web que está se conectando a ela. A página da Web também precisa enviar o ID do canal TLS para a extensão definindo
includeTlsChannelIdcomotrueno connectInfo do runtime.connect ou nas options do runtime.sendMessage. Se definido comofalse, runtime.MessageSender.tlsChannelId nunca será definido em nenhuma circunstância.
Isso não afeta scripts de conteúdo.