A propriedade de manifesto externally_connectable
declara quais extensões, apps e páginas da Web podem
se conecte ao seu app via runtime.connect
e runtime.sendMessage
.
Para acessar um tutorial sobre a transmissão de mensagens, consulte Mensagens entre extensões e apps e Envio de mensagens em páginas da Web.
Como se conectar sem external_connectable
Se externally_connectable
não for declarado no manifesto do app, todas as extensões e apps poderão
conectar, mas nenhuma página da Web pode conectar. Como consequência, ao atualizar o manifesto para usar
externally_connectable
, se "ids": ["*"]
não for especificado, outras extensões e apps serão
perder a capacidade de se conectar ao aplicativo. Tenha em mente que essa pode ser uma consequência não intencional.
Exemplo de manifest.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
},
...
}
Referência
A chave de manifesto external_connectable pode ter as seguintes propriedades:
ids
(matriz de string): opcionalOs IDs das extensões ou dos apps que têm permissão para se conectar. Se deixado em branco ou não especificado, não extensões ou apps podem se conectar.
O caractere curinga
"*"
permite que todas as extensões e apps se conectem.matches
(matriz de string): opcionalOs padrões de URL das páginas da Web que têm permissão para se conectar. Isso não afeta o conteúdo scripts. Se deixado em branco ou não especificado, nenhuma página da Web poderá se conectar.
Os padrões não podem incluir domínios com caracteres curinga nem subdomínios de domínios de nível superior(efetivos).
*://google.com/*
ehttps://*.chromium.org/*
são válidos, enquanto<all_urls>
,https://*/*
,*://*.com/*
e atéhttps://*.appspot.com/*
não são.accepts_tls_channel_id
(booleano) — opcionalSe o valor for
true
, as mensagens enviadas viaruntime.connect
ouruntime.sendMessage
serão definidasruntime.MessageSender.tlsChannelId
se esses métodos solicitarem que ele seja. Se forfalse
, Oruntime.MessageSender.tlsChannelId
nunca será definido em nenhuma circunstância.