From 75d53745826fd7927ec24240f4462bf4226464de Mon Sep 17 00:00:00 2001 From: Mark Stacey Date: Fri, 2 Aug 2019 16:29:28 -0230 Subject: Restrict unconnected notice to specific protocols (#6954) The notice asking whether you wanted to connect to a site was showing up in places it shouldn't, like on the Firefox/Chrome settings pages and on our fullscreen extension. It has now been restricted to only be displayed for active tabs with specific protocols: * http * https * dat * dweb * ipfs * ipns * ssb This prevents the notice from being shown on settings pages, browser extensions, and files such as PDFs. --- app/scripts/ui.js | 4 ++-- ui/app/pages/home/home.container.js | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/scripts/ui.js b/app/scripts/ui.js index a1f904f61..a99da37a0 100644 --- a/app/scripts/ui.js +++ b/app/scripts/ui.js @@ -92,9 +92,9 @@ async function queryCurrentActiveTab (windowType) { extension.tabs.query({active: true, currentWindow: true}, (tabs) => { const [activeTab] = tabs const {title, url} = activeTab - const origin = url ? urlUtil.parse(url).hostname : null + const { hostname: origin, protocol } = url ? urlUtil.parse(url) : {} resolve({ - title, origin, url, + title, origin, protocol, url, }) }) }) diff --git a/ui/app/pages/home/home.container.js b/ui/app/pages/home/home.container.js index 2ef05679d..064c914cd 100644 --- a/ui/app/pages/home/home.container.js +++ b/ui/app/pages/home/home.container.js @@ -11,6 +11,8 @@ import { import { getEnvironmentType } from '../../../../app/scripts/lib/util' import { ENVIRONMENT_TYPE_POPUP } from '../../../../app/scripts/lib/enums' +const activeTabDappProtocols = ['http:', 'https:', 'dweb:', 'ipfs:', 'ipns:', 'ssb:'] + const mapStateToProps = state => { const { activeTab, metamask, appState } = state const { @@ -28,7 +30,12 @@ const mapStateToProps = state => { const accountBalance = getCurrentEthBalance(state) const { forgottenPassword } = appState - const isUnconnected = Boolean(activeTab && privacyMode && !approvedOrigins[activeTab.origin]) + const isUnconnected = Boolean( + activeTab && + activeTabDappProtocols.includes(activeTab.protocol) && + privacyMode && + !approvedOrigins[activeTab.origin] + ) const isPopup = getEnvironmentType(window.location.href) === ENVIRONMENT_TYPE_POPUP return { -- cgit