mirror of
https://github.com/finos/SymphonyElectron.git
synced 2025-02-25 18:55:29 -06:00
Merge branch 'master' into SDA-2443-Fix-incorrect-download-file-name
This commit is contained in:
commit
209feaa339
@ -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 });
|
||||
|
@ -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', () => {
|
||||
|
@ -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);
|
||||
}
|
||||
};
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user