I have the proxy.pac
file like this:
function FindProxyForURL(url, host) {
return 'PROXY http://{some_ip_host}:3128';
}
And I want to setup this proxy setting in my electron app.
The result, that I want to see:
In main.js I have something code like this:
mainWindow.loadURL(serverUrl).then(() => {
console.log("loaded url successfully")
}).catch(r => {
console.log(r)
});
so, I want to load my serverUrl
through the proxy setting, and receive log about loaded url from electron app in proxy access.log
I tried to implement an example from
GH with this code snippet in my main.js
file:
// some imports and code before
function createWindow() {
let loading = new BrowserWindow()
loading.once('show', () => {
mainWindow = new BrowserWindow({
width: 1450,
height: 900,
webPreferences: {
nodeIntegration: true,
enableRemoteModule: true,
contextIsolation: false,
preload: `${__dirname}/logic.js`
},
show: false
})
let content = `function FindProxyForURL(url, host) {
return 'PROXY http://{some_ip_host}:3128';
}`;
const ses = mainWindow.webContents.session;
ses.closeAllConnections();
ses.setProxy({
mode:'pac_script',
pacScript: 'data:application/x-ns-proxy-autoconfig;base64,' + Buffer.from(content, 'utf8').toString('base64')
}).then(_=>{
console.log('done');
});
// here, I want to receive something like PROXY, but only resolved DIRECT logs(or it is normal?)
ses.resolveProxy("https://www.google.com").then(r => {
console.log("resolved proxy: " + r)
}).catch(r => {
console.log(r)
});
// here some code
mainWindow.loadURL(serverUrl).then(() => {
console.log("loaded url successfully")
}).catch(r => {
console.log(r)
});
})
}
app.whenReady().then(() => {
createWindow()
})
After start app in logs I receive something like this (and no logs in my proxy):
done
resolved proxy: DIRECT
loaded url successfully
So url wasn't loaded through the proxy. How to make this?