diff options
author | kumavis <kumavis@users.noreply.github.com> | 2016-10-13 04:52:32 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-13 04:52:32 +0800 |
commit | 8d5b2478e3aa939cb4b0a58b20b199cded62769e (patch) | |
tree | b287ae4a264fd29f5ec8b5fe2c97564fb80f62f8 /app/scripts/contentscript.js | |
parent | f68673e84ac48c5574b642b3b779d4d43954d98f (diff) | |
parent | 465cff78c33385c7f108e7539f484119f7a03767 (diff) | |
download | tangerine-wallet-browser-8d5b2478e3aa939cb4b0a58b20b199cded62769e.tar tangerine-wallet-browser-8d5b2478e3aa939cb4b0a58b20b199cded62769e.tar.gz tangerine-wallet-browser-8d5b2478e3aa939cb4b0a58b20b199cded62769e.tar.bz2 tangerine-wallet-browser-8d5b2478e3aa939cb4b0a58b20b199cded62769e.tar.lz tangerine-wallet-browser-8d5b2478e3aa939cb4b0a58b20b199cded62769e.tar.xz tangerine-wallet-browser-8d5b2478e3aa939cb4b0a58b20b199cded62769e.tar.zst tangerine-wallet-browser-8d5b2478e3aa939cb4b0a58b20b199cded62769e.zip |
Merge pull request #730 from MetaMask/i695-dapp-reload
dapp reload - fixed disconnect detection via polling
Diffstat (limited to 'app/scripts/contentscript.js')
-rw-r--r-- | app/scripts/contentscript.js | 20 |
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(){ |