Do not garbage collect sessions

This commit is contained in:
Cheng Zhao 2016-08-01 19:35:51 +09:00
parent 01ebc77228
commit d23d9dcf01

View file

@ -2,7 +2,7 @@ const {EventEmitter} = require('events')
const {app} = require('electron')
const {fromPartition, _setWrapSession} = process.atomBinding('session')
// Returns the default session.
// Public API.
Object.defineProperties(exports, {
defaultSession: {
enumerable: true,
@ -14,9 +14,15 @@ Object.defineProperties(exports, {
}
})
const sessions = []
// Wraps native Session class.
_setWrapSession(function (session) {
// Session is an EventEmitter.
Object.setPrototypeOf(session, EventEmitter.prototype)
app.emit('session-created', session)
// The Sessions should never be garbage collected, since the common pattern is
// to use partition strings, instead of using the Session object directly.
sessions.push(session)
})