1

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?

0 Answers0