Merge branch 'master' into i#519buyButtonTxConf

feature/default_network_editable
Frankie 8 years ago
commit 8ea086290b
  1. 10
      CHANGELOG.md
  2. 2
      app/manifest.json
  3. 25
      app/scripts/background.js
  4. 16
      test/unit/extension-test.js
  5. 4
      ui/app/conf-tx.js

@ -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.

@ -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",

@ -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')
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
})
})
}

@ -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()
})

@ -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)
}
}

Loading…
Cancel
Save