From 0795f81fcfb9b1a2fad309a8d1597a3d4b4a603b Mon Sep 17 00:00:00 2001 From: Pavel Samokha Date: Sat, 13 Jan 2018 21:28:58 +0300 Subject: [PATCH 1/4] proxy basic authentication implementation --- app/view/preferences/Preferences.js | 20 +++++++++++++++----- electron/main.js | 11 ++++++++++- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/app/view/preferences/Preferences.js b/app/view/preferences/Preferences.js index fbbca456..8dfd3338 100644 --- a/app/view/preferences/Preferences.js +++ b/app/view/preferences/Preferences.js @@ -260,12 +260,11 @@ Ext.define('Rambox.view.preferences.Preferences',{ ,checkboxName: 'proxy' ,margin: '10 0 0 0' ,padding: 10 - ,layout: 'hbox' - ,defaults: { labelAlign: 'top' } + ,layout: 'vbox' + ,defaults: { labelAlign: 'left' } ,items: [ { xtype: 'textfield' - ,vtype: 'url' ,fieldLabel: 'Host' ,name: 'proxyHost' ,value: config.proxyHost @@ -275,10 +274,21 @@ Ext.define('Rambox.view.preferences.Preferences',{ xtype: 'numberfield' ,fieldLabel: 'Port' ,name: 'proxyPort' - ,width: 100 ,value: config.proxyPort ,margin: '0 0 0 10' - } + },{ + xtype: 'textfield' + ,fieldLabel: 'Login' + ,name: 'proxyLogin' + ,value: config.proxyLogin + ,margin: '0 0 0 10' + },{ + xtype: 'textfield' + ,fieldLabel: 'Password' + ,name: 'proxyPassword' + ,value: config.proxyPassword + ,margin: '0 0 0 10' + } ] } ] diff --git a/electron/main.js b/electron/main.js index 61cc952b..cf13ad28 100644 --- a/electron/main.js +++ b/electron/main.js @@ -32,6 +32,8 @@ const config = new Config({ ,proxy: false ,proxyHost: '' ,proxyPort: '' + ,proxyLogin: '' + ,proxyPassword: '' ,locale: 'en' ,enable_hidpi_support: false ,default_service: 'ramboxTab' @@ -461,7 +463,14 @@ ipcMain.on('toggleWin', function(event, allwaysShow) { }); // Proxy -if ( config.get('proxy') ) app.commandLine.appendSwitch('proxy-server', config.get('proxyHost')+':'+config.get('proxyPort')); +if ( config.get('proxy') ) { + app.commandLine.appendSwitch('proxy-server', 'http://'+config.get('proxyHost')+':'+config.get('proxyPort')); + + app.on('login', (event, webContents, request, authInfo, callback) => { + event.preventDefault() + callback(config.get('proxyLogin'), config.get('proxyPassword')) + }) +} // Disable GPU Acceleration for Linux // to prevent White Page bug From 92ffa82f89fab5b0c11e2396b4fdf85ea2e65aa3 Mon Sep 17 00:00:00 2001 From: Pavel Samokha Date: Sat, 13 Jan 2018 21:51:54 +0300 Subject: [PATCH 2/4] updated proxy auth preferences --- app/view/preferences/Preferences.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/app/view/preferences/Preferences.js b/app/view/preferences/Preferences.js index 8dfd3338..11556edf 100644 --- a/app/view/preferences/Preferences.js +++ b/app/view/preferences/Preferences.js @@ -276,19 +276,23 @@ Ext.define('Rambox.view.preferences.Preferences',{ ,name: 'proxyPort' ,value: config.proxyPort ,margin: '0 0 0 10' - },{ + } + ,{ xtype: 'textfield' ,fieldLabel: 'Login' ,name: 'proxyLogin' ,value: config.proxyLogin ,margin: '0 0 0 10' - },{ - xtype: 'textfield' - ,fieldLabel: 'Password' - ,name: 'proxyPassword' - ,value: config.proxyPassword - ,margin: '0 0 0 10' - } + ,emptyText: 'optional' + } + ,{ + xtype: 'textfield' + ,fieldLabel: 'Password' + ,name: 'proxyPassword' + ,value: config.proxyPassword + ,margin: '0 0 0 10' + ,emptyText: 'optional' + } ] } ] From fce086b94939e6e8b9c9fd440ba40225c421eb13 Mon Sep 17 00:00:00 2001 From: Pavel Samokha Date: Sun, 14 Jan 2018 00:10:41 +0300 Subject: [PATCH 3/4] improved proxy auth --- electron/main.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/electron/main.js b/electron/main.js index cf13ad28..c24b44ad 100644 --- a/electron/main.js +++ b/electron/main.js @@ -465,8 +465,11 @@ ipcMain.on('toggleWin', function(event, allwaysShow) { // Proxy if ( config.get('proxy') ) { app.commandLine.appendSwitch('proxy-server', 'http://'+config.get('proxyHost')+':'+config.get('proxyPort')); - + console.info('test2') app.on('login', (event, webContents, request, authInfo, callback) => { + if(!authInfo.isProxy) + return; + event.preventDefault() callback(config.get('proxyLogin'), config.get('proxyPassword')) }) From 3b222d8d48b5bac370126cbaabd6be882dc71c91 Mon Sep 17 00:00:00 2001 From: Pavel Samokha Date: Sun, 14 Jan 2018 15:09:30 +0300 Subject: [PATCH 4/4] vtype is back --- app/view/preferences/Preferences.js | 1 + electron/main.js | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/view/preferences/Preferences.js b/app/view/preferences/Preferences.js index 11556edf..568b5fec 100644 --- a/app/view/preferences/Preferences.js +++ b/app/view/preferences/Preferences.js @@ -265,6 +265,7 @@ Ext.define('Rambox.view.preferences.Preferences',{ ,items: [ { xtype: 'textfield' + ,vtype: 'url' ,fieldLabel: 'Host' ,name: 'proxyHost' ,value: config.proxyHost diff --git a/electron/main.js b/electron/main.js index c24b44ad..8cfc2019 100644 --- a/electron/main.js +++ b/electron/main.js @@ -464,8 +464,7 @@ ipcMain.on('toggleWin', function(event, allwaysShow) { // Proxy if ( config.get('proxy') ) { - app.commandLine.appendSwitch('proxy-server', 'http://'+config.get('proxyHost')+':'+config.get('proxyPort')); - console.info('test2') + app.commandLine.appendSwitch('proxy-server', config.get('proxyHost')+':'+config.get('proxyPort')); app.on('login', (event, webContents, request, authInfo, callback) => { if(!authInfo.isProxy) return;