From 9d26bd762fa7a83285046794823368271ac4a938 Mon Sep 17 00:00:00 2001 From: Jyoti Puri Date: Wed, 9 Mar 2022 20:45:07 +0530 Subject: [PATCH] Improvements in connectRemote function in background.js (#13762) --- app/scripts/background.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/scripts/background.js b/app/scripts/background.js index 0c941c7f9..4e6176436 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -16,6 +16,7 @@ import { ENVIRONMENT_TYPE_POPUP, ENVIRONMENT_TYPE_NOTIFICATION, ENVIRONMENT_TYPE_FULLSCREEN, + PLATFORM_FIREFOX, } from '../../shared/constants/app'; import { SECOND } from '../../shared/constants/time'; import { @@ -38,6 +39,7 @@ import rawFirstTimeState from './first-time-state'; import getFirstPreferredLangCode from './lib/get-first-preferred-lang-code'; import getObjStructure from './lib/getObjStructure'; import setupEnsIpfsResolver from './lib/ens-ipfs/setup'; +import { getPlatform } from './lib/util'; /* eslint-enable import/first */ const { sentry } = global; @@ -345,12 +347,22 @@ function setupController(initState, initLangCode) { */ function connectRemote(remotePort) { const processName = remotePort.name; - const isMetaMaskInternalProcess = metamaskInternalProcessHash[processName]; if (metamaskBlockedPorts.includes(remotePort.name)) { return; } + let isMetaMaskInternalProcess = false; + const sourcePlatform = getPlatform(); + + if (sourcePlatform === PLATFORM_FIREFOX) { + isMetaMaskInternalProcess = metamaskInternalProcessHash[processName]; + } else { + isMetaMaskInternalProcess = + remotePort.sender.origin === + `chrome-extension://${extension.runtime.id}`; + } + if (isMetaMaskInternalProcess) { const portStream = new PortStream(remotePort); // communication with popup