2016-06-01 01:42:24 +00:00
|
|
|
const {EventEmitter} = require('events')
|
2016-07-12 11:06:08 +00:00
|
|
|
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.
|
2016-07-12 12:01:49 +00:00
|
|
|
Object.defineProperties(exports, {
|
|
|
|
defaultSession: {
|
|
|
|
enumerable: true,
|
|
|
|
get () { return fromPartition('') }
|
|
|
|
},
|
|
|
|
fromPartition: {
|
|
|
|
enumerable: true,
|
|
|
|
value: fromPartition
|
2016-01-12 02:40:23 +00:00
|
|
|
}
|
2016-03-24 20:15:04 +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)
|
2016-07-12 11:06:08 +00:00
|
|
|
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
|
|
|
})
|