electron/lib/browser/api/session.js

29 lines
764 B
JavaScript
Raw Normal View History

2016-06-01 01:42:24 +00:00
const {EventEmitter} = require('events')
const {app} = require('electron')
2016-07-12 11:21:59 +00:00
const {fromPartition, _setWrapSession} = process.atomBinding('session')
2016-06-01 01:42:24 +00:00
2016-08-01 10:35:51 +00:00
// Public API.
Object.defineProperties(exports, {
defaultSession: {
enumerable: true,
get () { return fromPartition('') }
},
fromPartition: {
enumerable: true,
value: fromPartition
2016-01-12 02:40:23 +00:00
}
})
2016-06-01 01:42:24 +00:00
2016-08-01 10:35:51 +00:00
const sessions = []
2016-07-12 11:21:59 +00:00
// Wraps native Session class.
_setWrapSession(function (session) {
2016-06-01 01:42:24 +00:00
// Session is an EventEmitter.
Object.setPrototypeOf(session, EventEmitter.prototype)
app.emit('session-created', session)
2016-08-01 10:35:51 +00:00
// 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)
2016-07-12 11:21:59 +00:00
})