1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-26 12:29:06 +01:00

fixed multiple notification windows when executing batch

This commit is contained in:
Jeffrey Tong 2018-03-07 20:09:40 -08:00
parent 40b1688c67
commit aaef2aeefd
2 changed files with 14 additions and 2 deletions

View File

@ -40,6 +40,7 @@ const isIE = !!document.documentMode
const isEdge = !isIE && !!window.StyleMedia const isEdge = !isIE && !!window.StyleMedia
let popupIsOpen = false let popupIsOpen = false
let notifcationIsOpen = false;
let openMetamaskTabsIDs = {} let openMetamaskTabsIDs = {}
// state persistence // state persistence
@ -136,6 +137,11 @@ function setupController (initState) {
} }
}) })
} }
if (remotePort.name === 'notification') {
endOfStream(portStream, () => {
notifcationIsOpen = false
});
}
} else { } else {
// communication with page // communication with page
const originDomain = urlUtil.parse(remotePort.sender.url).hostname const originDomain = urlUtil.parse(remotePort.sender.url).hostname
@ -178,7 +184,10 @@ function setupController (initState) {
function triggerUi () { function triggerUi () {
extension.tabs.query({ active: true }, (tabs) => { extension.tabs.query({ active: true }, (tabs) => {
const currentlyActiveMetamaskTab = tabs.find(tab => openMetamaskTabsIDs[tab.id]) const currentlyActiveMetamaskTab = tabs.find(tab => openMetamaskTabsIDs[tab.id])
if (!popupIsOpen && !currentlyActiveMetamaskTab) notificationManager.showPopup() if (!popupIsOpen && !currentlyActiveMetamaskTab) notificationManager.showPopup((notification) => {
notifcationIsOpen = notification;
});
notifcationIsOpen = true;
}) })
} }

View File

@ -9,7 +9,7 @@ class NotificationManager {
// Public // Public
// //
showPopup () { showPopup (cb) {
this._getPopup((err, popup) => { this._getPopup((err, popup) => {
if (err) throw err if (err) throw err
@ -23,6 +23,9 @@ class NotificationManager {
type: 'popup', type: 'popup',
width, width,
height, height,
}, (win) => {
// naming of popup window and a popup in chrome extension sense is confusing
cb((win.type == 'popup'));
}) })
} }
}) })