Browse Source

Feature: Override User-Agent for all services

Written for issue #440 https://github.com/saenzramiro/rambox/issues/440
pull/1632/head
failathon 7 years ago
parent
commit
a86c584e5d
  1. 1
      app/store/Services.js
  2. 8
      app/ux/WebView.js
  3. 1
      app/view/main/MainController.js
  4. 9
      app/view/preferences/Preferences.js
  5. 7
      app/view/preferences/PreferencesController.js
  6. 9
      electron/main.js

1
app/store/Services.js

@ -41,6 +41,7 @@ Ext.define('Rambox.store.Services', {
,displayTabUnreadCounter: service.get('displayTabUnreadCounter') ,displayTabUnreadCounter: service.get('displayTabUnreadCounter')
,enabled: service.get('enabled') ,enabled: service.get('enabled')
,record: service ,record: service
,useragent: ipc.sendSync('getConfig').user_agent
,tabConfig: { ,tabConfig: {
service: service service: service
} }

8
app/ux/WebView.js

@ -176,7 +176,7 @@ Ext.define('Rambox.ux.WebView',{
,autosize: 'on' ,autosize: 'on'
,webpreferences: 'allowRunningInsecureContent=yes' //,nativeWindowOpen=yes ,webpreferences: 'allowRunningInsecureContent=yes' //,nativeWindowOpen=yes
//,disablewebsecurity: 'on' // Disabled because some services (Like Google Drive) dont work with this enabled //,disablewebsecurity: 'on' // Disabled because some services (Like Google Drive) dont work with this enabled
,useragent: Ext.getStore('ServicesList').getById(me.record.get('type')).get('userAgent') ,useragent: ipc.sendSync('getConfig').user_agent ? ipc.sendSync('getConfig').user_agent : Ext.getStore('ServicesList').getById(me.record.get('type')).get('userAgent')
,preload: './resources/js/rambox-service-api.js' ,preload: './resources/js/rambox-service-api.js'
} }
}]; }];
@ -298,7 +298,7 @@ Ext.define('Rambox.ux.WebView',{
,src: e.url ,src: e.url
,style: 'width:100%;height:100%;' ,style: 'width:100%;height:100%;'
,partition: me.getWebView().partition ,partition: me.getWebView().partition
,useragent: Ext.getStore('ServicesList').getById(me.record.get('type')).get('userAgent') ,useragent: ipc.sendSync('getConfig').user_agent ? ipc.sendSync('getConfig').user_agent : Ext.getStore('ServicesList').getById(me.record.get('type')).get('userAgent')
} }
} }
}).show(); }).show();
@ -326,7 +326,7 @@ Ext.define('Rambox.ux.WebView',{
,src: e.url ,src: e.url
,style: 'width:100%;height:100%;' ,style: 'width:100%;height:100%;'
,partition: me.getWebView().partition ,partition: me.getWebView().partition
,useragent: Ext.getStore('ServicesList').getById(me.record.get('type')).get('userAgent') ,useragent: ipc.sendSync('getConfig').user_agent ? ipc.sendSync('getConfig').user_agent : Ext.getStore('ServicesList').getById(me.record.get('type')).get('userAgent')
} }
} }
}).show(); }).show();
@ -356,7 +356,7 @@ Ext.define('Rambox.ux.WebView',{
,src: e.url ,src: e.url
,style: 'width:100%;height:100%;' ,style: 'width:100%;height:100%;'
,partition: me.getWebView().partition ,partition: me.getWebView().partition
,useragent: Ext.getStore('ServicesList').getById(me.record.get('type')).get('userAgent') ,useragent: ipc.sendSync('getConfig').user_agent ? ipc.sendSync('getConfig').user_agent : Ext.getStore('ServicesList').getById(me.record.get('type')).get('userAgent')
,preload: './resources/js/rambox-modal-api.js' ,preload: './resources/js/rambox-modal-api.js'
} }
} }

1
app/view/main/MainController.js

@ -95,6 +95,7 @@ Ext.define('Rambox.view.main.MainController', {
,displayTabUnreadCounter: rec.get('displayTabUnreadCounter') ,displayTabUnreadCounter: rec.get('displayTabUnreadCounter')
,enabled: rec.get('enabled') ,enabled: rec.get('enabled')
,record: rec ,record: rec
,useragent: ipc.sendSync('getConfig').user_agent
,hidden: hideTab ,hidden: hideTab
,tabConfig: { ,tabConfig: {
service: rec service: rec

9
app/view/preferences/Preferences.js

@ -235,6 +235,15 @@ Ext.define('Rambox.view.preferences.Preferences',{
,boxLabel: locale['preferences[8]'] ,boxLabel: locale['preferences[8]']
,value: config.enable_hidpi_support ,value: config.enable_hidpi_support
,hidden: process.platform !== 'win32' ,hidden: process.platform !== 'win32'
},
{
xtype: 'textfield'
,fieldLabel: 'Override User-Agent for all services (needs to relaunch)'
,labelAlign: 'top'
,name: 'user_agent'
,value: config.user_agent
,width: 360
,emptyText: 'Leave blank for default user agent'
} }
,{ ,{
xtype: 'fieldset' xtype: 'fieldset'

7
app/view/preferences/PreferencesController.js

@ -45,6 +45,13 @@ Ext.define('Rambox.view.preferences.PreferencesController', {
return; return;
} }
// User Agent
if ( values.user_agent !== ipc.sendSync('getConfig').user_agent ) {
Ext.Msg.confirm('Action required', 'To change the user agent of Rambox, you need to reload the app. Do you want to do it now?', function(btnId) {
if ( btnId === 'yes' ) ipc.send('relaunchApp');
});
}
// Locale // Locale
if ( values.locale !== ipc.sendSync('getConfig').locale ) { if ( values.locale !== ipc.sendSync('getConfig').locale ) {
localStorage.setItem('locale', values.locale); localStorage.setItem('locale', values.locale);

9
electron/main.js

@ -36,6 +36,7 @@ const config = new Config({
,proxyPassword: '' ,proxyPassword: ''
,locale: 'en' ,locale: 'en'
,enable_hidpi_support: false ,enable_hidpi_support: false
,user_agent: ''
,default_service: 'ramboxTab' ,default_service: 'ramboxTab'
,x: undefined ,x: undefined
@ -163,6 +164,9 @@ function createWindow () {
} }
}); });
// Check if user has defined a custom User-Agent
if ( config.get('user_agent').length > 0 ) mainWindow.webContents.setUserAgent( config.get('user_agent') );
if ( !config.get('start_minimized') && config.get('maximized') ) mainWindow.maximize(); if ( !config.get('start_minimized') && config.get('maximized') ) mainWindow.maximize();
if ( config.get('window_display_behavior') !== 'show_trayIcon' && config.get('start_minimized') ) mainWindow.minimize(); if ( config.get('window_display_behavior') !== 'show_trayIcon' && config.get('start_minimized') ) mainWindow.minimize();
@ -196,6 +200,7 @@ function createWindow () {
case 'new-window': case 'new-window':
e.preventDefault(); e.preventDefault();
const win = new BrowserWindow(options); const win = new BrowserWindow(options);
if ( config.get('user_agent').length > 0 ) win.webContents.setUserAgent( config.get('user_agent') );
win.once('ready-to-show', () => win.show()); win.once('ready-to-show', () => win.show());
win.loadURL(url); win.loadURL(url);
e.newGuest = win; e.newGuest = win;
@ -406,6 +411,8 @@ ipcMain.on('image:download', function(event, url, partition) {
} }
}); });
if ( config.get('user_agent').length > 0 ) tmpWindow.webContents.setUserAgent( config.get('user_agent') );
tmpWindow.webContents.session.once('will-download', (event, downloadItem) => { tmpWindow.webContents.session.once('will-download', (event, downloadItem) => {
imageCache[url] = file = { imageCache[url] = file = {
path: tmp.tmpNameSync() + '.' + mime.extension(downloadItem.getMimeType()) path: tmp.tmpNameSync() + '.' + mime.extension(downloadItem.getMimeType())
@ -439,6 +446,8 @@ ipcMain.on('image:popup', function(event, url, partition) {
} }
}); });
if ( config.get('user_agent').length > 0 ) tmpWindow.webContents.setUserAgent( config.get('user_agent') );
tmpWindow.maximize(); tmpWindow.maximize();
tmpWindow.loadURL(url); tmpWindow.loadURL(url);

Loading…
Cancel
Save