Update: allow other extension to connect

feature/default_network_editable
Jakub Stasiak 7 years ago
parent 7b70804aa0
commit ad7d38c0dc
  1. 3
      app/manifest.json
  2. 14
      app/scripts/background.js

@ -67,6 +67,7 @@
"externally_connectable": {
"matches": [
"https://metamask.io/*"
]
],
"ids": ["*"]
}
}

@ -197,6 +197,7 @@ function setupController (initState, initLangCode) {
// connect to other contexts
//
extension.runtime.onConnect.addListener(connectRemote)
extension.runtime.onConnectExternal.addListener(connectExternal)
const metamaskInternalProcessHash = {
[ENVIRONMENT_TYPE_POPUP]: true,
@ -211,9 +212,9 @@ function setupController (initState, initLangCode) {
function connectRemote (remotePort) {
const processName = remotePort.name
const isMetaMaskInternalProcess = metamaskInternalProcessHash[processName]
const portStream = new PortStream(remotePort)
if (isMetaMaskInternalProcess) {
const portStream = new PortStream(remotePort)
// communication with popup
controller.isClientOpen = true
controller.setupTrustedCommunication(portStream, 'MetaMask')
@ -246,12 +247,17 @@ function setupController (initState, initLangCode) {
})
}
} else {
// communication with page
const originDomain = urlUtil.parse(remotePort.sender.url).hostname
controller.setupUntrustedCommunication(portStream, originDomain)
connectExternal(remotePort)
}
}
// communication with page or other extension
function connectExternal(remotePort) {
const originDomain = urlUtil.parse(remotePort.sender.url).hostname
const portStream = new PortStream(remotePort)
controller.setupUntrustedCommunication(portStream, originDomain)
}
//
// User Interface setup
//

Loading…
Cancel
Save