1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-22 09:57:02 +01:00

Differentiate locked and enabled

This commit is contained in:
bitpshr 2018-10-29 22:54:39 +01:00 committed by Dan Finlay
parent d7618bd5c6
commit cc1bab6ebb
4 changed files with 10 additions and 27 deletions

View File

@ -157,10 +157,6 @@ function listenForProviderRequest () {
case 'answer-is-unlocked':
injectScript(`window.dispatchEvent(new CustomEvent('metamaskisunlocked', { detail: { isUnlocked: ${isUnlocked}}}))`)
break
case 'metamask-set-locked':
isEnabled = false
injectScript(`window.dispatchEvent(new CustomEvent('metamasksetlocked', { detail: {}}))`)
break
}
})
}

View File

@ -44,8 +44,7 @@ class ProviderApprovalController {
*/
_handleProviderRequest (origin) {
this.store.updateState({ providerRequests: [{ origin }] })
const isUnlocked = this.keyringController.memStore.getState().isUnlocked
if (isUnlocked && this.isApproved(origin)) {
if (this.isApproved(origin)) {
this.approveProviderRequest(origin)
return
}
@ -126,14 +125,6 @@ class ProviderApprovalController {
const privacyMode = this.preferencesController.getFeatureFlags().privacyMode
return !privacyMode || this.approvedOrigins[origin]
}
/**
* Tells all tabs that MetaMask is now locked. This is primarily used to set
* internal flags in the contentscript and inpage script.
*/
setLocked () {
this.platform.sendMessage({ action: 'metamask-set-locked' })
}
}
module.exports = ProviderApprovalController

View File

@ -35,11 +35,6 @@ var inpageProvider = new MetamaskInpageProvider(metamaskStream)
// set a high max listener count to avoid unnecesary warnings
inpageProvider.setMaxListeners(100)
// set up a listener for when MetaMask is locked
window.addEventListener('metamasksetlocked', () => {
isEnabled = false
})
// augment the provider with its enable method
inpageProvider.enable = function () {
return new Promise((resolve, reject) => {
@ -50,13 +45,15 @@ inpageProvider.enable = function () {
// wait for the publicConfig store to populate with an account
const publicConfig = new Promise((resolve) => {
const { selectedAddress } = inpageProvider.publicConfigStore.getState()
if (selectedAddress) {
resolve()
} else {
inpageProvider.publicConfigStore.on('update', ({ selectedAddress }) => {
selectedAddress && resolve()
})
}
inpageProvider._metamask.isUnlocked().then(unlocked => {
if (!unlocked || selectedAddress) {
resolve()
} else {
inpageProvider.publicConfigStore.on('update', ({ selectedAddress }) => {
selectedAddress && resolve()
})
}
})
})
// wait for the background to update with an accoount

View File

@ -1581,7 +1581,6 @@ module.exports = class MetamaskController extends EventEmitter {
* Locks MetaMask
*/
setLocked() {
this.providerApprovalController.setLocked()
return this.keyringController.setLocked()
}
}