aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/contentscript.js
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2016-10-13 03:35:55 +0800
committerkumavis <aaron@kumavis.me>2016-10-13 03:35:55 +0800
commita1c3c944cf534fff8bfb9560347a03ba2a2bda00 (patch)
tree29888693645c9ad04f4b703f1fb0c0dfdac0da60 /app/scripts/contentscript.js
parent0182f8a4e91b8a9b0951967d2c075955bfb4f24f (diff)
downloadtangerine-wallet-browser-a1c3c944cf534fff8bfb9560347a03ba2a2bda00.tar
tangerine-wallet-browser-a1c3c944cf534fff8bfb9560347a03ba2a2bda00.tar.gz
tangerine-wallet-browser-a1c3c944cf534fff8bfb9560347a03ba2a2bda00.tar.bz2
tangerine-wallet-browser-a1c3c944cf534fff8bfb9560347a03ba2a2bda00.tar.lz
tangerine-wallet-browser-a1c3c944cf534fff8bfb9560347a03ba2a2bda00.tar.xz
tangerine-wallet-browser-a1c3c944cf534fff8bfb9560347a03ba2a2bda00.tar.zst
tangerine-wallet-browser-a1c3c944cf534fff8bfb9560347a03ba2a2bda00.zip
dapp reload - fixed disconnect detection via polling
Diffstat (limited to 'app/scripts/contentscript.js')
-rw-r--r--app/scripts/contentscript.js20
1 files changed, 12 insertions, 8 deletions
diff --git a/app/scripts/contentscript.js b/app/scripts/contentscript.js
index b3a560c88..3ad145e3e 100644
--- a/app/scripts/contentscript.js
+++ b/app/scripts/contentscript.js
@@ -1,4 +1,5 @@
const LocalMessageDuplexStream = require('post-message-stream')
+const PongStream = require('ping-pong-stream/pong')
const PortStream = require('./lib/port-stream.js')
const ObjectMultiplex = require('./lib/obj-multiplex')
const extension = require('./lib/extension')
@@ -51,17 +52,20 @@ function setupStreams(){
// forward communication plugin->inpage
pageStream.pipe(pluginStream).pipe(pageStream)
- // connect contentscript->inpage reload stream
+ // setup local multistream channels
var mx = ObjectMultiplex()
mx.on('error', console.error)
- mx.pipe(pageStream)
- var reloadStream = mx.createStream('reload')
- reloadStream.on('error', console.error)
+ mx.pipe(pageStream).pipe(mx)
+
+ // connect ping stream
+ var pongStream = new PongStream({ objectMode: true })
+ pongStream.pipe(mx.createStream('pingpong')).pipe(pongStream)
+
+ // ignore unused channels (handled by background)
+ mx.ignoreStream('provider')
+ mx.ignoreStream('publicConfig')
+ mx.ignoreStream('reload')
- // if we lose connection with the plugin, trigger tab refresh
- pluginStream.on('close', function () {
- reloadStream.write({ method: 'reset' })
- })
}
function shouldInjectWeb3(){