欢迎 What's new in Chrome extensions Get help with Chrome extensions API reference Samples
欢迎 What's new in Chrome extensions Get help with Chrome extensions API reference Samples

externally_connectable

Published on Updated on

The "externally_connectable" manifest property declares which extensions and web pages can connect to your extension via runtime.connect and runtime.sendMessage.

For a tutorial on message passing see [cross-extension messaging][messages-other-exts] and sending messages from web pages.

Connecting without externally_connectable

If the externally_connectable key is not declared in your extension's manifest, all extensions can connect, but no webpages can connect. As a consequence, when updating your manifest to use externally_connectable, if "ids": ["*"] is not specified then other extensions will lose the ability to connect to your extension. This may be an unintended consequence, so keep it in mind.

Sample manifest.json

{
"name": "My externally connectable extension",
"externally_connectable": {
"ids": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
...
],
// If this field is not specified, no webpages can connect.
"matches": [
"https://*.google.com/*",
"*://*.chromium.org/*",
...
],
"accepts_tls_channel_id": false
},
...
}

Reference

The "externally_connectable" manifest key includes the following optional properties:

"ids"
The IDs of extensions that are allowed to connect. If left empty or unspecified, no extensions or apps can connect. The wildcard "*" will allow all extensions and apps to connect.
"matches"
The URL patterns for web pages that are allowed to connect. If left empty or unspecified, no web pages can connect. Patterns cannot include wildcard domains nor subdomains of (effective) top level domains, for example:
✅ Valid URLs❌ Invalid URLs
*://example.com/*://example.com/one/
http://*.example.org/*<all_urls>
https://example.com/*http://*/*
"accepts_tls_channel_id"
Enables the extension 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. If set to false, runtime.MessageSender.tlsChannelId will never be set under any circumstance.

This does not affect content scripts.

Updated on Improve article

We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.