From eea77b828fdaecb07fdc704edbcac0f42c771d27 Mon Sep 17 00:00:00 2001 From: Frankie Date: Wed, 14 Sep 2016 10:59:31 -0700 Subject: [PATCH 1/9] Dont generate a popup notification when submiting a transaction from with in MetaMask --- app/scripts/background.js | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/app/scripts/background.js b/app/scripts/background.js index 58228a41a..18a112dd1 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -10,31 +10,22 @@ const MetamaskController = require('./metamask-controller') const extension = require('./lib/extension') const STORAGE_KEY = 'metamask-config' - +var popupIsOpen = false const controller = new MetamaskController({ // User confirmation callbacks: - showUnconfirmedMessage, - unlockAccountMessage, - showUnconfirmedTx, + showUnconfirmedMessage: triggerUi, + unlockAccountMessage: triggerUi, + showUnconfirmedTx: triggerUi, // Persistence Methods: setData, loadData, }) const idStore = controller.idStore -function unlockAccountMessage () { - notification.show() -} - -function showUnconfirmedMessage (msgParams, msgId) { - notification.show() +function triggerUi () { + if (!popupIsOpen) notification.show() } - -function showUnconfirmedTx (txParams, txData, onTxDoneCb) { - notification.show() -} - // On first install, open a window to MetaMask website to how-it-works. extension.runtime.onInstalled.addListener(function (details) { @@ -53,7 +44,8 @@ function connectRemote (remotePort) { var portStream = new PortStream(remotePort) if (isMetaMaskInternalProcess) { // communication with popup - setupTrustedCommunication(portStream, 'MetaMask') + remotePort.name === 'popup' ? popupIsOpen = true : popupIsOpen = false + setupTrustedCommunication(portStream, 'MetaMask', remotePort.name) } else { // communication with page var originDomain = urlUtil.parse(remotePort.sender.url).hostname @@ -69,12 +61,13 @@ function setupUntrustedCommunication (connectionStream, originDomain) { controller.setupPublicConfig(mx.createStream('publicConfig')) } -function setupTrustedCommunication (connectionStream, originDomain) { +function setupTrustedCommunication (connectionStream, originDomain, metamaskContext) { // setup multiplexing var mx = setupMultiplex(connectionStream) // connect features setupControllerConnection(mx.createStream('controller')) controller.setupProviderConnection(mx.createStream('provider'), originDomain) + if (metamaskContext === 'popup') popupIsOpen = true } // @@ -95,6 +88,7 @@ function setupControllerConnection (stream) { // teardown on disconnect eos(stream, () => { controller.ethStore.removeListener('update', controller.sendUpdate.bind(controller)) + popupIsOpen = false }) }) } From 03094091d1ae1573f7867c887d91346356d48b6c Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Wed, 14 Sep 2016 11:35:50 -0700 Subject: [PATCH 2/9] Version 2.11.2 --- CHANGELOG.md | 5 ++++- app/manifest.json | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 862bf3d7e..959524c06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,13 @@ ## Current Master +## 2.12.0 2016-09-14 + +- Add a QR button to the Account detail screen - Fixed bug where opening MetaMask could close a non-metamask popup. - Fixed memory leak that caused occasional crashes. +- Fixed bug where some tx errors would block subsequent txs until the plugin was refreshed. -- Add a QR button to the Account detail screen ## 2.11.1 2016-09-12 - Fix bug that prevented caches from being cleared in Opera. diff --git a/app/manifest.json b/app/manifest.json index a21e0612a..c1cbd074d 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -1,7 +1,7 @@ { "name": "MetaMask", "short_name": "Metamask", - "version": "2.11.1", + "version": "2.11.2", "manifest_version": 2, "author": "https://metamask.io", "description": "Ethereum Browser Extension", From 17481ff61a63effaaa9bef7dc9d8f8ccf6d432bf Mon Sep 17 00:00:00 2001 From: Frankie Date: Wed, 14 Sep 2016 11:36:56 -0700 Subject: [PATCH 3/9] Add to CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 862bf3d7e..cd96ee0a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## Current Master +- Fixed bug where if you send a transaction from within MetaMask extension the +popup notification opens up. + - Fixed bug where opening MetaMask could close a non-metamask popup. - Fixed memory leak that caused occasional crashes. From 19a354066b66c33dd5f2f1c52f94bea4525cd2d1 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Wed, 14 Sep 2016 11:38:59 -0700 Subject: [PATCH 4/9] Version 2.12.0 --- app/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/manifest.json b/app/manifest.json index c1cbd074d..fe4ecf4f0 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -1,7 +1,7 @@ { "name": "MetaMask", "short_name": "Metamask", - "version": "2.11.2", + "version": "2.12.0", "manifest_version": 2, "author": "https://metamask.io", "description": "Ethereum Browser Extension", From b7e6ec5ceae4510013c644bac7bc4d138aa6f0a1 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Wed, 14 Sep 2016 11:57:41 -0700 Subject: [PATCH 5/9] Fix popup flag assignment --- app/scripts/background.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/scripts/background.js b/app/scripts/background.js index 18a112dd1..b2268425a 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -44,7 +44,7 @@ function connectRemote (remotePort) { var portStream = new PortStream(remotePort) if (isMetaMaskInternalProcess) { // communication with popup - remotePort.name === 'popup' ? popupIsOpen = true : popupIsOpen = false + popupIsOpen = remotePort.name === 'popup' setupTrustedCommunication(portStream, 'MetaMask', remotePort.name) } else { // communication with page @@ -67,7 +67,6 @@ function setupTrustedCommunication (connectionStream, originDomain, metamaskCont // connect features setupControllerConnection(mx.createStream('controller')) controller.setupProviderConnection(mx.createStream('provider'), originDomain) - if (metamaskContext === 'popup') popupIsOpen = true } // From 8e7a9c470943b4cfe1e19f1682ee8521033ed2db Mon Sep 17 00:00:00 2001 From: Frankie Date: Wed, 14 Sep 2016 12:22:39 -0700 Subject: [PATCH 6/9] Remove unused argument --- app/scripts/background.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/scripts/background.js b/app/scripts/background.js index b2268425a..652acc113 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -61,7 +61,7 @@ function setupUntrustedCommunication (connectionStream, originDomain) { controller.setupPublicConfig(mx.createStream('publicConfig')) } -function setupTrustedCommunication (connectionStream, originDomain, metamaskContext) { +function setupTrustedCommunication (connectionStream, originDomain) { // setup multiplexing var mx = setupMultiplex(connectionStream) // connect features From a0bfdfe40920c606fc09f9637ee6cef18537e3c5 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Wed, 14 Sep 2016 14:34:54 -0700 Subject: [PATCH 7/9] Do not show user rejection errors within our UI. --- ui/app/conf-tx.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui/app/conf-tx.js b/ui/app/conf-tx.js index 99b4bc9f1..f02b6be78 100644 --- a/ui/app/conf-tx.js +++ b/ui/app/conf-tx.js @@ -140,7 +140,9 @@ ConfirmTxScreen.prototype.goHome = function (event) { } function warningIfExists (warning) { - if (warning) { + if (warning && + // Do not display user rejections on this screen: + warning.indexOf('User denied transaction signature') === -1) { return h('span.error', { style: { margin: 'auto' } }, warning) } } From 8df005153befe65cb605175254f37d7207acc9c5 Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Wed, 14 Sep 2016 15:51:50 -0700 Subject: [PATCH 8/9] Version 2.12.1 --- CHANGELOG.md | 4 +++- app/manifest.json | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4438c3cc..63264622d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,15 +2,17 @@ ## Current Master +## 2.12.1 2016-09-14 + - Fixed bug where if you send a transaction from within MetaMask extension the popup notification opens up. +- Fixed bug where some tx errors would block subsequent txs until the plugin was refreshed. ## 2.12.0 2016-09-14 - Add a QR button to the Account detail screen - Fixed bug where opening MetaMask could close a non-metamask popup. - Fixed memory leak that caused occasional crashes. -- Fixed bug where some tx errors would block subsequent txs until the plugin was refreshed. ## 2.11.1 2016-09-12 diff --git a/app/manifest.json b/app/manifest.json index fe4ecf4f0..daf9ef94a 100644 --- a/app/manifest.json +++ b/app/manifest.json @@ -1,7 +1,7 @@ { "name": "MetaMask", "short_name": "Metamask", - "version": "2.12.0", + "version": "2.12.1", "manifest_version": 2, "author": "https://metamask.io", "description": "Ethereum Browser Extension", From cf31e1902909f3bd1f0e26b279cda79a9879ff4e Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Wed, 14 Sep 2016 18:24:52 -0700 Subject: [PATCH 9/9] Remove logs --- test/unit/extension-test.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/unit/extension-test.js b/test/unit/extension-test.js index b0b72509b..8f259f05c 100644 --- a/test/unit/extension-test.js +++ b/test/unit/extension-test.js @@ -18,9 +18,7 @@ describe('extension', function() { } it('returns the desired result', function() { - console.dir(Extension) const extension = new Extension() - console.dir(extension) const result = extension.extension.getURL() assert.equal(result, desiredResult) })