diff options
author | Dan Finlay <dan@danfinlay.com> | 2017-07-27 03:10:42 +0800 |
---|---|---|
committer | Dan Finlay <dan@danfinlay.com> | 2017-07-27 03:27:16 +0800 |
commit | 3d8ebf2265d167923f3b913bac3b9cc4d37fa052 (patch) | |
tree | 7e8701eac32f1d5c72d0e516cd0af52aa358df8a /app/scripts/background.js | |
parent | 0deb617d8f879b9a05c4581f16f5790cafa9789a (diff) | |
download | dexon-wallet-3d8ebf2265d167923f3b913bac3b9cc4d37fa052.tar.gz dexon-wallet-3d8ebf2265d167923f3b913bac3b9cc4d37fa052.tar.zst dexon-wallet-3d8ebf2265d167923f3b913bac3b9cc4d37fa052.zip |
Begin implementing live-updating blacklist, not working yet
Diffstat (limited to 'app/scripts/background.js')
-rw-r--r-- | app/scripts/background.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/app/scripts/background.js b/app/scripts/background.js index e8987394..c9505b23 100644 --- a/app/scripts/background.js +++ b/app/scripts/background.js @@ -90,6 +90,10 @@ function setupController (initState) { extension.runtime.onConnect.addListener(connectRemote) function connectRemote (remotePort) { + if (remotePort.name === 'blacklister') { + return setupBlacklist(connectRemote) + } + var isMetaMaskInternalProcess = remotePort.name === 'popup' || remotePort.name === 'notification' var portStream = new PortStream(remotePort) if (isMetaMaskInternalProcess) { @@ -135,6 +139,29 @@ function setupController (initState) { return Promise.resolve() } +// Listen for new pages and return if blacklisted: +function setupBlacklist (port) { + console.log('Blacklist connection established') + const handler = handleNewPageLoad.bind(port) + port.onMessage.addListener(handler) + setTimeout(() => { + port.onMessage.removeListener(handler) + }, 30000) +} + +function handleNewPageLoad (message) { + const { pageLoaded } = message + console.log('blaclist message received', message.pageLoaded) + if (!pageLoaded || !global.metamaskController) return + + const state = global.metamaskController.getState() + const { blacklist } = state.metamask + + if (blacklist && blacklist.includes(pageLoaded)) { + this.postMessage({ 'blacklist': pageLoaded }) + } +} + // // Etc... // |