mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-22 18:00:18 +01:00
Differentiate locked and enabled
This commit is contained in:
parent
d7618bd5c6
commit
cc1bab6ebb
@ -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
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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,7 +45,8 @@ 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) {
|
||||
inpageProvider._metamask.isUnlocked().then(unlocked => {
|
||||
if (!unlocked || selectedAddress) {
|
||||
resolve()
|
||||
} else {
|
||||
inpageProvider.publicConfigStore.on('update', ({ selectedAddress }) => {
|
||||
@ -58,6 +54,7 @@ inpageProvider.enable = function () {
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
// wait for the background to update with an accoount
|
||||
const ethAccounts = new Promise((resolveAccounts, rejectAccounts) => {
|
||||
|
@ -1581,7 +1581,6 @@ module.exports = class MetamaskController extends EventEmitter {
|
||||
* Locks MetaMask
|
||||
*/
|
||||
setLocked() {
|
||||
this.providerApprovalController.setLocked()
|
||||
return this.keyringController.setLocked()
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user