aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/background.js
diff options
context:
space:
mode:
authorKevin Serrano <kevgagser@gmail.com>2017-07-28 06:22:09 +0800
committerGitHub <noreply@github.com>2017-07-28 06:22:09 +0800
commitd15e402ed87bf7533250c49a7972a7b1a12c99c2 (patch)
tree3bbeb674eb53c7dc7a9f616c75b63825cbe2848f /app/scripts/background.js
parente3b5bb2052d59afbf9c2761af883de719261062e (diff)
parent7c71ee1babcaad19dbe7db6c5abfefe2f9654781 (diff)
downloadtangerine-wallet-browser-d15e402ed87bf7533250c49a7972a7b1a12c99c2.tar
tangerine-wallet-browser-d15e402ed87bf7533250c49a7972a7b1a12c99c2.tar.gz
tangerine-wallet-browser-d15e402ed87bf7533250c49a7972a7b1a12c99c2.tar.bz2
tangerine-wallet-browser-d15e402ed87bf7533250c49a7972a7b1a12c99c2.tar.lz
tangerine-wallet-browser-d15e402ed87bf7533250c49a7972a7b1a12c99c2.tar.xz
tangerine-wallet-browser-d15e402ed87bf7533250c49a7972a7b1a12c99c2.tar.zst
tangerine-wallet-browser-d15e402ed87bf7533250c49a7972a7b1a12c99c2.zip
Merge pull request #1838 from MetaMask/i1805-LiveBlacklistUpdating
Live blacklist updating
Diffstat (limited to 'app/scripts/background.js')
-rw-r--r--app/scripts/background.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/app/scripts/background.js b/app/scripts/background.js
index e8987394f..bc0fbdc37 100644
--- a/app/scripts/background.js
+++ b/app/scripts/background.js
@@ -11,6 +11,7 @@ const NotificationManager = require('./lib/notification-manager.js')
const MetamaskController = require('./metamask-controller')
const extension = require('extensionizer')
const firstTimeState = require('./first-time-state')
+const isPhish = require('./lib/is-phish')
const STORAGE_KEY = 'metamask-config'
const METAMASK_DEBUG = 'GULP_METAMASK_DEBUG'
@@ -90,6 +91,10 @@ function setupController (initState) {
extension.runtime.onConnect.addListener(connectRemote)
function connectRemote (remotePort) {
+ if (remotePort.name === 'blacklister') {
+ return checkBlacklist(remotePort)
+ }
+
var isMetaMaskInternalProcess = remotePort.name === 'popup' || remotePort.name === 'notification'
var portStream = new PortStream(remotePort)
if (isMetaMaskInternalProcess) {
@@ -135,6 +140,27 @@ function setupController (initState) {
return Promise.resolve()
}
+// Listen for new pages and return if blacklisted:
+function checkBlacklist (port) {
+ const handler = handleNewPageLoad.bind(null, port)
+ port.onMessage.addListener(handler)
+ setTimeout(() => {
+ port.onMessage.removeListener(handler)
+ }, 30000)
+}
+
+function handleNewPageLoad (port, message) {
+ const { pageLoaded } = message
+ if (!pageLoaded || !global.metamaskController) return
+
+ const state = global.metamaskController.getState()
+ const updatedBlacklist = state.blacklist
+
+ if (isPhish({ updatedBlacklist, hostname: pageLoaded })) {
+ port.postMessage({ 'blacklist': pageLoaded })
+ }
+}
+
//
// Etc...
//