8.4 KiB
session
The session object is a property of webContents which is
a property of BrowserWindow. You can access it through an
instance of BrowserWindow. For example:
const BrowserWindow = require('electron').BrowserWindow;
var win = new BrowserWindow({ width: 800, height: 600 });
win.loadURL("http://github.com");
var session = win.webContents.session
Events
Event: 'will-download'
eventEventitemDownloadItemwebContentsWebContents
Emitted when Electron is about to download item in webContents.
Calling event.preventDefault() will cancel the download.
session.on('will-download', function(event, item, webContents) {
event.preventDefault();
require('request')(item.getURL(), function(data) {
require('fs').writeFileSync('/somewhere', data);
});
});
Methods
The session object has the following methods:
session.cookies
The cookies gives you ability to query and modify cookies. For example:
const BrowserWindow = require('electron').BrowserWindow;
var win = new BrowserWindow({ width: 800, height: 600 });
win.loadURL('https://github.com');
win.webContents.on('did-finish-load', function() {
// Query all cookies.
win.webContents.session.cookies.get({}, function(error, cookies) {
if (error) throw error;
console.log(cookies);
});
// Query all cookies associated with a specific url.
win.webContents.session.cookies.get({ url : "http://www.github.com" },
function(error, cookies) {
if (error) throw error;
console.log(cookies);
});
// Set a cookie with the given cookie data;
// may overwrite equivalent cookies if they exist.
win.webContents.session.cookies.set(
{ url : "http://www.github.com", name : "dummy_name", value : "dummy"},
function(error, cookies) {
if (error) throw error;
console.log(cookies);
});
});
session.cookies.get(details, callback)
details Object, properties:
urlString - Retrieves cookies which are associated withurl. Empty implies retrieving cookies of all urls.nameString - Filters cookies by namedomainString - Retrieves cookies whose domains match or are subdomains ofdomainspathString - Retrieves cookies whose path matchespathsecureBoolean - Filters cookies by their Secure propertysessionBoolean - Filters out session or persistent cookies.callbackFunction - function(error, cookies)errorErrorcookiesArray - array ofcookieobjects, properties:nameString - The name of the cookie.valueString - The value of the cookie.domainString - The domain of the cookie.host_onlyString - Whether the cookie is a host-only cookie.pathString - The path of the cookie.secureBoolean - Whether the cookie is marked as Secure (typically HTTPS).http_onlyBoolean - Whether the cookie is marked as HttpOnly.sessionBoolean - Whether the cookie is a session cookie or a persistent cookie with an expiration date.expirationDateDouble - (Option) The expiration date of the cookie as the number of seconds since the UNIX epoch. Not provided for session cookies.
session.cookies.set(details, callback)
details Object, properties:
-
urlString - Retrieves cookies which are associated withurl -
nameString - The name of the cookie. Empty by default if omitted. -
valueString - The value of the cookie. Empty by default if omitted. -
domainString - The domain of the cookie. Empty by default if omitted. -
pathString - The path of the cookie. Empty by default if omitted. -
secureBoolean - Whether the cookie should be marked as Secure. Defaults to false. -
sessionBoolean - Whether the cookie should be marked as HttpOnly. Defaults to false. -
expirationDateDouble - The expiration date of the cookie as the number of seconds since the UNIX epoch. If omitted, the cookie becomes a session cookie. -
callbackFunction - function(error)errorError
session.cookies.remove(details, callback)
detailsObject, proprties:urlString - The URL associated with the cookienameString - The name of cookie to remove
callbackFunction - function(error)errorError
session.clearCache(callback)
callbackFunction - Called when operation is done
Clears the session’s HTTP cache.
session.clearStorageData([options, ]callback)
optionsObject (optional), proprties:originString - Should followwindow.location.origin’s representationscheme://host:port.storagesArray - The types of storages to clear, can contain:appcache,cookies,filesystem,indexdb,local storage,shadercache,websql,serviceworkersquotasArray - The types of quotas to clear, can contain:temporary,persistent,syncable.
callbackFunction - Called when operation is done.
Clears the data of web storages.
session.setProxy(config, callback)
configStringcallbackFunction - Called when operation is done.
If config is a PAC url, it is used directly otherwise
config is parsed based on the following rules indicating which
proxies to use for the session.
config = scheme-proxies[";"<scheme-proxies>]
scheme-proxies = [<url-scheme>"="]<proxy-uri-list>
url-scheme = "http" | "https" | "ftp" | "socks"
proxy-uri-list = <proxy-uri>[","<proxy-uri-list>]
proxy-uri = [<proxy-scheme>"://"]<proxy-host>[":"<proxy-port>]
For example:
"http=foopy:80;ftp=foopy2" -- use HTTP proxy "foopy:80" for http://
URLs, and HTTP proxy "foopy2:80" for
ftp:// URLs.
"foopy:80" -- use HTTP proxy "foopy:80" for all URLs.
"foopy:80,bar,direct://" -- use HTTP proxy "foopy:80" for all URLs,
failing over to "bar" if "foopy:80" is
unavailable, and after that using no
proxy.
"socks4://foopy" -- use SOCKS v4 proxy "foopy:1080" for all
URLs.
"http=foopy,socks5://bar.com -- use HTTP proxy "foopy" for http URLs,
and fail over to the SOCKS5 proxy
"bar.com" if "foopy" is unavailable.
"http=foopy,direct:// -- use HTTP proxy "foopy" for http URLs,
and use no proxy if "foopy" is
unavailable.
"http=foopy;socks=foopy2 -- use HTTP proxy "foopy" for http URLs,
and use socks4://foopy2 for all other
URLs.
session.setDownloadPath(path)
pathString - The download location
Sets download saving directory. By default, the download directory will be the
Downloads under the respective app folder.
session.enableNetworkEmulation(options)
optionsObjectofflineBoolean - Whether to emulate network outage.latencyDouble - RTT in msdownloadThroughputDouble - Download rate in BpsuploadThroughputDouble - Upload rate in Bps
Emulates network with the given configuration for the session.
// To emulate a GPRS connection with 50kbps throughput and 500 ms latency.
window.webContents.session.enableNetworkEmulation({
latency: 500,
downloadThroughput: 6400,
uploadThroughput: 6400
});
// To emulate a network outage.
window.webContents.session.enableNetworkEmulation({offline: true});
session.disableNetworkEmulation
Disables any network emulation already active for the session. Resets to
the original network configuration.
session.setCertificateVerifyProc(proc)
procFunction
Sets the certificate verify proc for session, the proc will be called with
proc(hostname, certificate, callback) whenever a server certificate
verification is requested. Calling callback(true) accepts the certificate,
calling callback(false) rejects it.
Calling setCertificateVerifyProc(null) will revert back to default certificate
verify proc.
myWindow.webContents.session.setCertificateVerifyProc(function(hostname, cert, callback) {
if (hostname == 'github.com')
callback(true);
else
callback(false);
});