1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

background - stream disconnection fix

This commit is contained in:
kumavis 2017-01-26 20:18:28 -08:00
parent 2f79781ab9
commit fc3a53ec7b
2 changed files with 8 additions and 8 deletions

View File

@ -122,17 +122,16 @@ function setupController (initState) {
// remote features // remote features
// //
function setupControllerConnection (stream) { function setupControllerConnection (outStream) {
controller.stream = stream
var api = controller.getApi() var api = controller.getApi()
var dnode = Dnode(api) var dnode = Dnode(api)
stream.pipe(dnode).pipe(stream) outStream.pipe(dnode).pipe(outStream)
dnode.on('remote', (remote) => { dnode.on('remote', (remote) => {
// push updates to popup // push updates to popup
var sendUpdate = remote.sendUpdate.bind(remote) var sendUpdate = remote.sendUpdate.bind(remote)
controller.on('update', sendUpdate) controller.on('update', sendUpdate)
// teardown on disconnect // teardown on disconnect
eos(stream, () => { eos(outStream, () => {
controller.removeListener('update', sendUpdate) controller.removeListener('update', sendUpdate)
popupIsOpen = false popupIsOpen = false
}) })

View File

@ -1,4 +1,5 @@
const Through = require('through2') const Through = require('through2')
const endOfStream = require('end-of-stream')
const ObjectMultiplex = require('./obj-multiplex') const ObjectMultiplex = require('./obj-multiplex')
module.exports = { module.exports = {
@ -24,11 +25,11 @@ function jsonStringifyStream () {
function setupMultiplex (connectionStream) { function setupMultiplex (connectionStream) {
var mx = ObjectMultiplex() var mx = ObjectMultiplex()
connectionStream.pipe(mx).pipe(connectionStream) connectionStream.pipe(mx).pipe(connectionStream)
mx.on('error', function (err) { endOfStream(mx, function (err) {
console.error(err) if (err) console.error(err)
}) })
connectionStream.on('error', function (err) { endOfStream(connectionStream, function (err) {
console.error(err) if (err) console.error(err)
mx.destroy() mx.destroy()
}) })
return mx return mx