electron/lib/browser/api/session.js
2016-07-13 12:23:14 +09:00

31 lines
885 B
JavaScript

const {EventEmitter} = require('events')
const {app} = require('electron')
const {fromPartition, _setWrapSession} = process.atomBinding('session')
const PERSIST_PREFIX = 'persist:'
// Returns the Session from |partition| string.
exports.fromPartition = function (partition = '') {
if (partition === '') return exports.defaultSession
if (partition.startsWith(PERSIST_PREFIX)) {
return fromPartition(partition.substr(PERSIST_PREFIX.length), false)
} else {
return fromPartition(partition, true)
}
}
// Returns the default session.
Object.defineProperty(exports, 'defaultSession', {
enumerable: true,
get: function () {
return fromPartition('', false)
}
})
// Wraps native Session class.
_setWrapSession(function (session) {
// Session is an EventEmitter.
Object.setPrototypeOf(session, EventEmitter.prototype)
app.emit('session-created', session)
})