Merge branch 'master' into SDA-2443-Fix-incorrect-download-file-name

This commit is contained in:
psjostrom 2020-09-14 10:36:54 +02:00 committed by GitHub
commit 209feaa339
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 67 additions and 42 deletions

View File

@ -13,7 +13,7 @@ import { autoLaunchInstance as autoLaunch } from './auto-launch-controller';
import { CloudConfigDataTypes, config, IConfig } from './config-handler';
import { gpuRestartDialog, titleBarChangeDialog } from './dialog-handler';
import { exportCrashDumps, exportLogs } from './reports-handler';
import { updateAlwaysOnTop } from './window-actions';
import { registerConsoleMessages, unregisterConsoleMessages, updateAlwaysOnTop } from './window-actions';
import { ICustomBrowserWindow, windowHandler } from './window-handler';
import { reloadWindow, windowExists } from './window-utils';
@ -473,8 +473,10 @@ export class AppMenu {
click: async () => {
if (this.enableRendererLogs) {
this.enableRendererLogs = false;
unregisterConsoleMessages();
} else {
this.enableRendererLogs = true;
registerConsoleMessages();
}
const enableRendererLogs = this.enableRendererLogs;
await config.updateUserConfig({ enableRendererLogs });

View File

@ -11,6 +11,7 @@ import { config } from './config-handler';
import {
handlePermissionRequests,
monitorWindowActions,
onConsoleMessages,
removeWindowEventListener,
sendInitialBoundChanges,
} from './window-actions';
@ -175,6 +176,7 @@ export const handleChildWindow = (webContents: WebContents): void => {
}
windowHandler.addWindow(newWinKey, browserWin);
const { url } = config.getGlobalConfigFields([ 'url' ]);
const { enableRendererLogs } = config.getConfigFields([ 'enableRendererLogs' ]);
browserWin.webContents.send('page-load', {
isWindowsOS,
locale: i18n.getLocale(),
@ -201,24 +203,9 @@ export const handleChildWindow = (webContents: WebContents): void => {
// Update initial bound changes
sendInitialBoundChanges(browserWin);
browserWin.webContents.on('console-message', (_event, level, message, _line, _sourceId) => {
const { enableRendererLogs } = config.getConfigFields([ 'enableRendererLogs' ]);
if (enableRendererLogs) {
if (browserWin) {
if (level === 0) {
logger.debug('renderer ' + browserWin.title + ': ' + message);
} else if (level === 1) {
logger.info('renderer ' + browserWin.title + ': ' + message);
} else if (level === 2) {
logger.warn('renderer ' + browserWin.title + ': ' + message);
} else if (level === 3) {
logger.error('renderer ' + browserWin.title + ': ' + message);
} else {
logger.info('renderer ' + browserWin.title + ': ' + message);
}
}
}
});
if (enableRendererLogs) {
browserWin.webContents.on('console-message', onConsoleMessages);
}
// Remove all attached event listeners
browserWin.on('close', () => {

View File

@ -389,3 +389,51 @@ export const handlePermissionRequests = (webContents: Electron.webContents): voi
}
});
};
/**
* Writes renderer logs to log file
* @param _event
* @param level
* @param message
* @param _line
* @param _sourceId
*/
export const onConsoleMessages = (_event, level, message, _line, _sourceId) => {
if (level === 0) {
logger.log('error', `renderer: ${message}`, [], false);
} else if (level === 1) {
logger.log('info', `renderer: ${message}`, [], false);
} else if (level === 2) {
logger.log('warn', `renderer: ${message}`, [], false);
} else if (level === 3) {
logger.log('error', `renderer: ${message}`, [], false);
} else {
logger.log('info', `renderer: ${message}`, [], false);
}
};
/**
* Unregisters renderer logs from all the available browser window
*/
export const unregisterConsoleMessages = () => {
const browserWindows = BrowserWindow.getAllWindows();
for (const browserWindow of browserWindows) {
if (!browserWindow || !windowExists(browserWindow)) {
return;
}
browserWindow.webContents.removeListener('console-message', onConsoleMessages);
}
};
/**
* registers renderer logs from all the available browser window
*/
export const registerConsoleMessages = () => {
const browserWindows = BrowserWindow.getAllWindows();
for (const browserWindow of browserWindows) {
if (!browserWindow || !windowExists(browserWindow)) {
return;
}
browserWindow.webContents.on('console-message', onConsoleMessages);
}
};

View File

@ -25,7 +25,7 @@ import { CloudConfigDataTypes, config, IConfig, IGlobalConfig } from './config-h
import { SpellChecker } from './spell-check-handler';
import { checkIfBuildExpired } from './ttl-handler';
import { versionHandler } from './version-handler';
import { handlePermissionRequests, monitorWindowActions } from './window-actions';
import { handlePermissionRequests, monitorWindowActions, onConsoleMessages } from './window-actions';
import {
createComponentWindow,
didVerifyAndRestoreWindow,
@ -114,7 +114,7 @@ export class WindowHandler {
constructor(opts?: Electron.BrowserViewConstructorOptions) {
// Use these variables only on initial setup
this.config = config.getConfigFields([ 'isCustomTitleBar', 'mainWinPos', 'minimizeOnClose', 'notificationSettings', 'alwaysOnTop', 'locale', 'customFlags', 'clientSwitch' ]);
this.config = config.getConfigFields([ 'isCustomTitleBar', 'mainWinPos', 'minimizeOnClose', 'notificationSettings', 'alwaysOnTop', 'locale', 'customFlags', 'clientSwitch', 'enableRendererLogs' ]);
logger.info(`window-handler: main windows initialized with following config data`, this.config);
this.globalConfig = config.getGlobalConfigFields([ 'url', 'contextIsolation', 'contextOriginUrl' ]);
@ -385,25 +385,6 @@ export class WindowHandler {
response === 0 ? this.mainWindow.reload() : this.mainWindow.close();
});
this.mainWindow.webContents.on('console-message', (_event, level, message, _line, _sourceId) => {
const { enableRendererLogs } = config.getConfigFields([ 'enableRendererLogs' ]);
if (enableRendererLogs) {
if (this.mainWindow) {
if (level === 0) {
logger.debug('renderer ' + this.mainWindow.winName + ': ' + message);
} else if (level === 1) {
logger.info('renderer ' + this.mainWindow.winName + ': ' + message);
} else if (level === 2) {
logger.warn('renderer ' + this.mainWindow.winName + ': ' + message);
} else if (level === 3) {
logger.error('renderer ' + this.mainWindow.winName + ': ' + message);
} else {
logger.info('renderer ' + this.mainWindow.winName + ': ' + message);
}
}
}
});
// Handle main window close
this.mainWindow.on('close', (event) => {
if (!this.mainWindow || !windowExists(this.mainWindow)) {
@ -476,6 +457,10 @@ export class WindowHandler {
// Handle pop-outs window
handleChildWindow(this.mainWindow.webContents);
if (this.config.enableRendererLogs) {
this.mainWindow.webContents.on('console-message', onConsoleMessages);
}
return this.mainWindow;
}

View File

@ -175,8 +175,9 @@ class Logger {
* @param logLevel {LogLevel} - Different type of log levels
* @param message {string} - Log message
* @param data {array} - extra data to be logged
* @param sendToCloud {boolean} - wehether to send the logs on to cloud
*/
private log(logLevel: LogLevel, message: string, data: any[] = []): void {
public log(logLevel: LogLevel, message: string, data: any[] = [], sendToCloud: boolean = true): void {
if (data && data.length > 0) {
data.forEach((param) => {
message += `, '${param && typeof param}': ${JSON.stringify(param)}`;
@ -193,7 +194,9 @@ class Logger {
default: electronLog.info(message);
}
}
this.sendToCloud(this.formatLogMsg(logLevel, message));
if (sendToCloud) {
this.sendToCloud(this.formatLogMsg(logLevel, message));
}
}
/**