aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/inpage.js
diff options
context:
space:
mode:
authorFrankie <frankie.pangilinan@consensys.net>2016-10-14 06:17:30 +0800
committerFrankie <frankie.pangilinan@consensys.net>2016-10-14 06:17:30 +0800
commitb200f74d5f414408881fc56b44dc3c7c7bbb7996 (patch)
tree84d0dd8585b1fe6bd252a655f8e289fc3bee271e /app/scripts/inpage.js
parentc400f7c0f6bff13400eedcd80fdc83e572eb42a8 (diff)
parent8d5b2478e3aa939cb4b0a58b20b199cded62769e (diff)
downloadtangerine-wallet-browser-b200f74d5f414408881fc56b44dc3c7c7bbb7996.tar
tangerine-wallet-browser-b200f74d5f414408881fc56b44dc3c7c7bbb7996.tar.gz
tangerine-wallet-browser-b200f74d5f414408881fc56b44dc3c7c7bbb7996.tar.bz2
tangerine-wallet-browser-b200f74d5f414408881fc56b44dc3c7c7bbb7996.tar.lz
tangerine-wallet-browser-b200f74d5f414408881fc56b44dc3c7c7bbb7996.tar.xz
tangerine-wallet-browser-b200f74d5f414408881fc56b44dc3c7c7bbb7996.tar.zst
tangerine-wallet-browser-b200f74d5f414408881fc56b44dc3c7c7bbb7996.zip
Merge branch 'master' into i#495CustomGasField
Diffstat (limited to 'app/scripts/inpage.js')
-rw-r--r--app/scripts/inpage.js21
1 files changed, 16 insertions, 5 deletions
diff --git a/app/scripts/inpage.js b/app/scripts/inpage.js
index 28a1223ac..ef199946c 100644
--- a/app/scripts/inpage.js
+++ b/app/scripts/inpage.js
@@ -2,6 +2,8 @@
cleanContextForImports()
require('web3/dist/web3.min.js')
const LocalMessageDuplexStream = require('post-message-stream')
+const PingStream = require('ping-pong-stream/ping')
+const endOfStream = require('end-of-stream')
const setupDappAutoReload = require('./lib/auto-reload.js')
const MetamaskInpageProvider = require('./lib/inpage-provider.js')
restoreContextAfterImports()
@@ -29,13 +31,22 @@ web3.setProvider = function () {
console.log('MetaMask - overrode web3.setProvider')
}
console.log('MetaMask - injected web3')
+// export global web3, with usage-detection reload fn
+var triggerReload = setupDappAutoReload(web3)
-//
-// export global web3 with auto dapp reload
-//
-
+// listen for reset requests from metamask
var reloadStream = inpageProvider.multiStream.createStream('reload')
-setupDappAutoReload(web3, reloadStream)
+reloadStream.once('data', triggerReload)
+
+// setup ping timeout autoreload
+// LocalMessageDuplexStream does not self-close, so reload if pingStream fails
+var pingChannel = inpageProvider.multiStream.createStream('pingpong')
+var pingStream = new PingStream({ objectMode: true })
+// wait for first successful reponse
+metamaskStream.once('data', function(){
+ pingStream.pipe(pingChannel).pipe(pingStream)
+})
+endOfStream(pingStream, triggerReload)
// set web3 defaultAcount
inpageProvider.publicConfigStore.subscribe(function (state) {