タイトル通りです。

sessionってのを使います。

下記の公式ドキュメントに詳細があります。

https://github.com/electron/electron/blob/master/docs/api/session.md#instance-methods

ソースコード

簡単なサンプルです。

"use strict";
const electron = require("electron");
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;

var mainWindow = null;

// アプリの準備ができたらWindowを表示
app.on("ready", function () {
	
	// Windowを生成
	mainWindow = new BrowserWindow({
		width: 600,
		height: 400,
		title: "Cookie test"
	});
	
	// Windowが閉じられたらmainWindowを初期化
	mainWindow.on("close", function () {
		mainWindow = null;
	});
	
	// 適当なHTMLをロード
	mainWindow.loadURL("file://" + __dirname + "/index.html");
	
	/* ===== ここからCookieの設定 ===== */
	// 設定するCookieを定義
	var cookie = {
		url: "http://totoraj.net",// 対象となるURL
		name: "user_name",// Cookieの名前
		value: "totoraj"// Cookieの値
	};
	
	// mainWindowのCookieを設定
	mainWindow.webContents.session.cookies.set(cookie, function (error) {
		if (error) {// エラーが出たら出力
			console.log(error);
		}
	});
	/* ===== ここまでCookieの設定 ===== */
});


// Windowがすべて閉じたらアプリを終了
app.on("window-all-closed", function () {
	if (process.platform != "darwin") {
		app.quit();
	}
});

対象となるURLについて

.nicovideo.jpのようにワイルドカードを指定する場合もhttp://を先頭につけないといけのでhttp://.nicovideo.jpとなる。

.nicovideo.jpを設定してみるとfailedというエラーが出たのでそもそもhttp://https://を付けないとエラーが出る?かもしれない。

おわりに

わけあってBrowserWindowに任意のCookieを設定したかったんだけどなかなかそれらしい記事とかがなかったのでメモ。

参考になれば幸いです。