2016-06-01 01:42:24 +00:00
|
|
|
const {EventEmitter} = require('events')
|
2017-02-07 23:44:56 +00:00
|
|
|
const {app} = require('electron')
|
2016-09-21 23:24:03 +00:00
|
|
|
const {fromPartition, Session, Cookies} = 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-02 11:38:35 +00:00
|
|
|
Object.setPrototypeOf(Session.prototype, EventEmitter.prototype)
|
2016-09-21 23:24:03 +00:00
|
|
|
Object.setPrototypeOf(Cookies.prototype, EventEmitter.prototype)
|
2016-08-02 11:38:35 +00:00
|
|
|
|
|
|
|
Session.prototype._init = function () {
|
|
|
|
app.emit('session-created', this)
|
|
|
|
}
|
2016-11-09 13:05:46 +00:00
|
|
|
|
|
|
|
Session.prototype.setCertificateVerifyProc = function (verifyProc) {
|
2017-02-08 00:35:37 +00:00
|
|
|
if (verifyProc != null && verifyProc.length > 2) {
|
2017-02-07 23:44:56 +00:00
|
|
|
// TODO(kevinsawicki): Remove in 2.0, deprecate before then with warnings
|
2017-02-08 00:35:37 +00:00
|
|
|
this._setCertificateVerifyProc(({hostname, certificate, verificationResult}, cb) => {
|
2016-11-09 13:05:46 +00:00
|
|
|
verifyProc(hostname, certificate, (result) => {
|
2017-11-23 21:53:03 +00:00
|
|
|
// Disabled due to false positive in StandardJS
|
|
|
|
// eslint-disable-next-line standard/no-callback-literal
|
2016-11-09 13:05:46 +00:00
|
|
|
cb(result ? 0 : -2)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
this._setCertificateVerifyProc(verifyProc)
|
|
|
|
}
|
|
|
|
}
|