aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2016-02-13 12:01:48 +0800
committerkumavis <aaron@kumavis.me>2016-02-13 12:01:48 +0800
commit7bbb624540939df2cd246d092b07fe761c9a9868 (patch)
tree3fe937638236dff22650d707ea2731e031f76db9 /app
parent970e9e2113e1d78df14fa07f6b3ef9a0c91c4473 (diff)
downloadtangerine-wallet-browser-7bbb624540939df2cd246d092b07fe761c9a9868.tar
tangerine-wallet-browser-7bbb624540939df2cd246d092b07fe761c9a9868.tar.gz
tangerine-wallet-browser-7bbb624540939df2cd246d092b07fe761c9a9868.tar.bz2
tangerine-wallet-browser-7bbb624540939df2cd246d092b07fe761c9a9868.tar.lz
tangerine-wallet-browser-7bbb624540939df2cd246d092b07fe761c9a9868.tar.xz
tangerine-wallet-browser-7bbb624540939df2cd246d092b07fe761c9a9868.tar.zst
tangerine-wallet-browser-7bbb624540939df2cd246d092b07fe761c9a9868.zip
popup - add current domain tracking
Diffstat (limited to 'app')
-rw-r--r--app/manifest.json6
-rw-r--r--app/scripts/popup.js65
2 files changed, 49 insertions, 22 deletions
diff --git a/app/manifest.json b/app/manifest.json
index 3a110629f..d3d20dd82 100644
--- a/app/manifest.json
+++ b/app/manifest.json
@@ -36,15 +36,15 @@
}
],
"permissions": [
- "storage"
+ "storage",
+ "tabs"
],
"web_accessible_resources": [
"scripts/inpage.js"
],
"externally_connectable": {
"matches": [
- "https://metamask.io/*",
- "https://alpha.metamask.io/*"
+ "https://metamask.io/*"
]
}
} \ No newline at end of file
diff --git a/app/scripts/popup.js b/app/scripts/popup.js
index ca88f4fa7..77c27c6b5 100644
--- a/app/scripts/popup.js
+++ b/app/scripts/popup.js
@@ -1,38 +1,65 @@
+const url = require('url')
const EventEmitter = require('events').EventEmitter
+const async = require('async')
const Dnode = require('dnode')
const MetaMaskUi = require('metamask-ui')
const MetaMaskUiCss = require('metamask-ui/css')
const injectCss = require('inject-css')
const PortStream = require('./lib/port-stream.js')
-
-// setup communication with background
-var pluginPort = chrome.runtime.connect({name: 'popup'})
-var duplex = new PortStream(pluginPort)
-var eventEmitter = new EventEmitter()
-var background = Dnode({
- // setUnconfirmedTxs: setUnconfirmedTxs,
- sendUpdate: function(state){
- eventEmitter.emit('update', state)
- },
-})
-duplex.pipe(background).pipe(duplex)
-background.once('remote', function(accountManager){
- accountManager.on = eventEmitter.on.bind(eventEmitter)
- setupApp(accountManager)
-})
-
// setup app
var css = MetaMaskUiCss()
injectCss(css)
-function setupApp(accountManager){
+async.parallel({
+ currentDomain: getCurrentDomain,
+ accountManager: connectToAccountManager,
+}, setupApp)
+
+function connectToAccountManager(cb){
+ // setup communication with background
+ var pluginPort = chrome.runtime.connect({name: 'popup'})
+ var duplex = new PortStream(pluginPort)
+ var eventEmitter = new EventEmitter()
+ var background = Dnode({
+ // setUnconfirmedTxs: setUnconfirmedTxs,
+ sendUpdate: function(state){
+ eventEmitter.emit('update', state)
+ },
+ })
+ duplex.pipe(background).pipe(duplex)
+ background.once('remote', function(accountManager){
+ // setup push events
+ accountManager.on = eventEmitter.on.bind(eventEmitter)
+ cb(null, accountManager)
+ })
+}
+
+function getCurrentDomain(cb){
+ chrome.tabs.query({active: true, currentWindow: true}, function(results){
+ var activeTab = results[0]
+ var currentUrl = activeTab && activeTab.url
+ var currentDomain = url.parse(currentUrl).host
+ if (!currentUrl) {
+ return cb(null, '<unknown>')
+ }
+ cb(null, currentDomain)
+ })
+}
+
+function setupApp(err, opts){
+ if (err) {
+ alert(err.stack)
+ throw err
+ return
+ }
var container = document.getElementById('app-content')
var app = MetaMaskUi({
container: container,
- accountManager: accountManager,
+ accountManager: opts.accountManager,
+ currentDomain: opts.currentDomain,
})
} \ No newline at end of file