A propriedade de manifesto externally_connectable
declara quais extensões, apps e páginas da Web podem
conecte-se à extensão 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 da sua extensão, todas as extensões e apps
podem se 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
não será mais possível se conectar à extensão. Esta pode ser uma consequência não intencional, portanto, mantenha
em mente.
Exemplo de manifest.json
{
"name": "My externally connectable extension",
"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/*
ehttp://*.chromium.org/*
são válidos, enquanto<all_urls>
,http://*/*
,*://*.com/*
e atéhttp://*.appspot.com/*
não são.accepts_tls_channel_id
(booleano) — opcionalSe
true
, as mensagens enviadas por runtime.connect ou runtime.sendMessage são definidas runtime.MessageSender.tlsChannelId se esses métodos solicitarem que ele seja. Se forfalse
, O runtime.MessageSender.tlsChannelId nunca será definido em nenhuma circunstância.