1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 01:39:44 +01:00

Merge branch 'master' into i#519buyButtonTxConf

This commit is contained in:
Frankie 2016-09-15 10:26:02 -07:00
commit 8ea086290b
5 changed files with 30 additions and 27 deletions

View File

@ -2,10 +2,18 @@
## 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.
- 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.

View File

@ -1,7 +1,7 @@
{
"name": "MetaMask",
"short_name": "Metamask",
"version": "2.11.1",
"version": "2.12.1",
"manifest_version": 2,
"author": "https://metamask.io",
"description": "Ethereum Browser Extension",

View File

@ -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 triggerUi () {
if (!popupIsOpen) notification.show()
}
function showUnconfirmedMessage (msgParams, msgId) {
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')
popupIsOpen = remotePort.name === 'popup'
setupTrustedCommunication(portStream, 'MetaMask', remotePort.name)
} else {
// communication with page
var originDomain = urlUtil.parse(remotePort.sender.url).hostname
@ -95,6 +87,7 @@ function setupControllerConnection (stream) {
// teardown on disconnect
eos(stream, () => {
controller.ethStore.removeListener('update', controller.sendUpdate.bind(controller))
popupIsOpen = false
})
})
}

View File

@ -1,8 +1,8 @@
var assert = require('assert')
var sinon = require('sinon')
const ethUtil = require('ethereumjs-util')
GLOBAL.chrome = {}
GLOBAL.browser = {}
global.chrome = {}
global.browser = {}
var path = require('path')
var Extension = require(path.join(__dirname, '..', '..', 'app', 'scripts', 'lib', 'extension-instance.js'))
@ -13,7 +13,7 @@ describe('extension', function() {
const desiredResult = 'http://the-desired-result.io'
describe('in Chrome or Firefox', function() {
GLOBAL.chrome.extension = {
global.chrome.extension = {
getURL: () => desiredResult
}
@ -25,7 +25,7 @@ describe('extension', function() {
})
describe('in Microsoft Edge', function() {
GLOBAL.browser.extension = {
global.browser.extension = {
getURL: () => desiredResult
}
@ -41,7 +41,7 @@ describe('extension', function() {
let extension
beforeEach(function() {
GLOBAL.chrome = {
global.chrome = {
alarms: 'foo'
}
extension = new Extension()
@ -58,9 +58,9 @@ describe('extension', function() {
beforeEach(function() {
realWindow = window
window = GLOBAL
GLOBAL.chrome = undefined
GLOBAL.alarms = 'foo'
window = global
global.chrome = undefined
global.alarms = 'foo'
extension = new Extension()
})

View File

@ -160,7 +160,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)
}
}