Note: Currently Firefox does not support this attribute, refer to the Compatibility table for details.

Type Object
Mandatory No
"externally_connectable": {
  // List of extension IDs that extension wishes to communicate with
  // If "browser_action" is specified but "browser_action.ids" is not,
  // no extensions can communicate with this extension.
  // To match all extension IDs use "*".
  "ids": [
  // Regular expression patterns specifying web pages
  // If "matches" is not specified, no web pages can communicate with
  // this extension
  "matches": [

Externally connectable allows extension developer to control which other extensions and web pages can communicate with this extension via runtime.connect and runtime.sendMessage message passing. If externally_connectable is not specified, all extensions can communicate with each other but not with web pages.

"ids" attribute

ids enables communication between this extension and other installed extensions specified by extension identifiers. Use pattern "*" if you wish to communicate with all extensions. 

"matches" attribute

matches enables communication between this extension and the web pages. This is a list of regular expressions for page URLs that you wish to communicate with.

Note: If browser_action is not specified, communication among extensions is still a allowed as if browser_action was {"ids": ["*"] }, therefore if you specify browser_action.matches don't forget to add ids if you still want to communicate with other extensions.

Browser compatibility

Update compatibility data on GitHub
ChromeEdgeFirefoxOperaFirefox for Android
externally_connectableChrome Full support YesEdge No support NoFirefox No support No
No support No
Notes See bug 1319168.
Opera Full support YesFirefox Android No support No


Full support  
Full support
No support  
No support
See implementation notes.
See implementation notes.

Document Tags and Contributors

Contributors to this page: Alling, Gudahtt, bershanskiy
Last updated by: Alling,