diff --git a/lib/browser/api/session.js b/lib/browser/api/session.js index 86a7902ef5..ab2d277859 100644 --- a/lib/browser/api/session.js +++ b/lib/browser/api/session.js @@ -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) })