diff options
author | Chi Kei Chan <chikeichan@gmail.com> | 2017-10-19 14:04:54 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-19 14:04:54 +0800 |
commit | 776e8241f0464939cc3049f7155c150e3375c623 (patch) | |
tree | 017600778515e74eaf15bf4f889e5b26638c56d7 /mascara/src | |
parent | de1da7d1b215ade650fc644adf63384a401dc240 (diff) | |
parent | a8bba2f4b7ca714d46b2e1ca405aec3135aa23b2 (diff) | |
download | tangerine-wallet-browser-776e8241f0464939cc3049f7155c150e3375c623.tar tangerine-wallet-browser-776e8241f0464939cc3049f7155c150e3375c623.tar.gz tangerine-wallet-browser-776e8241f0464939cc3049f7155c150e3375c623.tar.bz2 tangerine-wallet-browser-776e8241f0464939cc3049f7155c150e3375c623.tar.lz tangerine-wallet-browser-776e8241f0464939cc3049f7155c150e3375c623.tar.xz tangerine-wallet-browser-776e8241f0464939cc3049f7155c150e3375c623.tar.zst tangerine-wallet-browser-776e8241f0464939cc3049f7155c150e3375c623.zip |
Merge pull request #2402 from chikeichan/merge
[NewUI] Merge master into NewUI-flat
Diffstat (limited to 'mascara/src')
-rw-r--r-- | mascara/src/background.js | 98 | ||||
-rw-r--r-- | mascara/src/proxy.js | 4 | ||||
-rw-r--r-- | mascara/src/ui.js | 10 |
3 files changed, 44 insertions, 68 deletions
diff --git a/mascara/src/background.js b/mascara/src/background.js index 5ba865ad8..8aa1d8fe2 100644 --- a/mascara/src/background.js +++ b/mascara/src/background.js @@ -1,72 +1,60 @@ global.window = global -const self = global -const pipe = require('pump') const SwGlobalListener = require('sw-stream/lib/sw-global-listener.js') -const connectionListener = new SwGlobalListener(self) +const connectionListener = new SwGlobalListener(global) const setupMultiplex = require('../../app/scripts/lib/stream-utils.js').setupMultiplex -const PortStream = require('../../app/scripts/lib/port-stream.js') const DbController = require('idb-global') const SwPlatform = require('../../app/scripts/platforms/sw') const MetamaskController = require('../../app/scripts/metamask-controller') -const extension = {} //require('../../app/scripts/lib/extension') -const storeTransform = require('obs-store/lib/transform') const Migrator = require('../../app/scripts/lib/migrator/') const migrations = require('../../app/scripts/migrations/') const firstTimeState = require('../../app/scripts/first-time-state') const STORAGE_KEY = 'metamask-config' const METAMASK_DEBUG = process.env.METAMASK_DEBUG -let popupIsOpen = false -let connectedClientCount = 0 +global.metamaskPopupIsOpen = false const log = require('loglevel') global.log = log log.setDefaultLevel(METAMASK_DEBUG ? 'debug' : 'warn') -self.addEventListener('install', function(event) { - event.waitUntil(self.skipWaiting()) +global.addEventListener('install', function (event) { + event.waitUntil(global.skipWaiting()) }) -self.addEventListener('activate', function(event) { - event.waitUntil(self.clients.claim()) +global.addEventListener('activate', function (event) { + event.waitUntil(global.clients.claim()) }) -console.log('inside:open') +log.debug('inside:open') // // state persistence -let diskStore const dbController = new DbController({ key: STORAGE_KEY, }) loadStateFromPersistence() .then((initState) => setupController(initState)) -.then(() => console.log('MetaMask initialization complete.')) +.then(() => log.debug('MetaMask initialization complete.')) .catch((err) => console.error('WHILE SETTING UP:', err)) -// initialization flow - // // State and Persistence // -function loadStateFromPersistence() { +async function loadStateFromPersistence () { // migrations - let migrator = new Migrator({ migrations }) + const migrator = new Migrator({ migrations }) const initialState = migrator.generateInitialState(firstTimeState) dbController.initialState = initialState - return dbController.open() - .then((versionedData) => migrator.migrateData(versionedData)) - .then((versionedData) => { - dbController.put(versionedData) - return Promise.resolve(versionedData) - }) - .then((versionedData) => Promise.resolve(versionedData.data)) + const versionedData = await dbController.open() + const migratedData = await migrator.migrateData(versionedData) + await dbController.put(migratedData) + return migratedData.data } -function setupController (initState, client) { +async function setupController (initState, client) { // // MetaMask Controller @@ -86,19 +74,19 @@ function setupController (initState, client) { }) global.metamaskController = controller - controller.store.subscribe((state) => { - versionifyData(state) - .then((versionedData) => dbController.put(versionedData)) - .catch((err) => {console.error(err)}) + controller.store.subscribe(async (state) => { + try { + const versionedData = await versionifyData(state) + await dbController.put(versionedData) + } catch (e) { console.error('METAMASK Error:', e) } }) - function versionifyData(state) { - return dbController.get() - .then((rawData) => { - return Promise.resolve({ - data: state, - meta: rawData.meta, - })} - ) + + async function versionifyData (state) { + const rawData = await dbController.get() + return { + data: state, + meta: rawData.meta, + } } // @@ -106,8 +94,7 @@ function setupController (initState, client) { // connectionListener.on('remote', (portStream, messageEvent) => { - console.log('REMOTE CONECTION FOUND***********') - connectedClientCount += 1 + log.debug('REMOTE CONECTION FOUND***********') connectRemote(portStream, messageEvent.data.context) }) @@ -116,7 +103,7 @@ function setupController (initState, client) { if (isMetaMaskInternalProcess) { // communication with popup controller.setupTrustedCommunication(connectionStream, 'MetaMask') - popupIsOpen = true + global.metamaskPopupIsOpen = true } else { // communication with page setupUntrustedCommunication(connectionStream, context) @@ -130,25 +117,14 @@ function setupController (initState, client) { controller.setupProviderConnection(mx.createStream('provider'), originDomain) controller.setupPublicConfig(mx.createStream('publicConfig')) } - - function setupTrustedCommunication (connectionStream, originDomain) { - // setup multiplexing - var mx = setupMultiplex(connectionStream) - // connect features - controller.setupProviderConnection(mx.createStream('provider'), originDomain) - } - // - // User Interface setup - // - return Promise.resolve() - } +// // this will be useful later but commented out for linting for now (liiiinting) +// function sendMessageToAllClients (message) { +// global.clients.matchAll().then(function (clients) { +// clients.forEach(function (client) { +// client.postMessage(message) +// }) +// }) +// } -function sendMessageToAllClients (message) { - self.clients.matchAll().then(function(clients) { - clients.forEach(function(client) { - client.postMessage(message) - }) - }) -} function noop () {} diff --git a/mascara/src/proxy.js b/mascara/src/proxy.js index 07c5b0e3c..54c5d5cf4 100644 --- a/mascara/src/proxy.js +++ b/mascara/src/proxy.js @@ -2,7 +2,7 @@ const createParentStream = require('iframe-stream').ParentStream const SWcontroller = require('client-sw-ready-event/lib/sw-client.js') const SwStream = require('sw-stream/lib/sw-stream.js') -let intervalDelay = Math.floor(Math.random() * (30000 - 1000)) + 1000 +const intervalDelay = Math.floor(Math.random() * (30000 - 1000)) + 1000 const background = new SWcontroller({ fileName: '/background.js', letBeIdle: false, @@ -12,7 +12,7 @@ const background = new SWcontroller({ const pageStream = createParentStream() background.on('ready', () => { - let swStream = SwStream({ + const swStream = SwStream({ serviceWorker: background.controller, context: 'dapp', }) diff --git a/mascara/src/ui.js b/mascara/src/ui.js index 2f940ad1a..b272a2e06 100644 --- a/mascara/src/ui.js +++ b/mascara/src/ui.js @@ -17,17 +17,17 @@ var name = 'popup' window.METAMASK_UI_TYPE = name window.METAMASK_PLATFORM_TYPE = 'mascara' -let intervalDelay = Math.floor(Math.random() * (30000 - 1000)) + 1000 +const intervalDelay = Math.floor(Math.random() * (30000 - 1000)) + 1000 const background = new SWcontroller({ fileName: '/background.js', letBeIdle: false, intervalDelay, - wakeUpInterval: 20000 + wakeUpInterval: 20000, }) // Setup listener for when the service worker is read const connectApp = function (readSw) { - let connectionStream = SwStream({ + const connectionStream = SwStream({ serviceWorker: background.controller, context: name, }) @@ -57,7 +57,7 @@ background.on('updatefound', windowReload) background.startWorker() -function windowReload() { +function windowReload () { if (window.METAMASK_SKIP_RELOAD) return window.location.reload() } @@ -66,4 +66,4 @@ function timeout (time) { return new Promise((resolve) => { setTimeout(resolve, time || 1500) }) -}
\ No newline at end of file +} |