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 { CloudConfigDataTypes, config, IConfig } from './config-handler';
|
||||||
import { gpuRestartDialog, titleBarChangeDialog } from './dialog-handler';
|
import { gpuRestartDialog, titleBarChangeDialog } from './dialog-handler';
|
||||||
import { exportCrashDumps, exportLogs } from './reports-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 { ICustomBrowserWindow, windowHandler } from './window-handler';
|
||||||
import { reloadWindow, windowExists } from './window-utils';
|
import { reloadWindow, windowExists } from './window-utils';
|
||||||
|
|
||||||
@ -473,8 +473,10 @@ export class AppMenu {
|
|||||||
click: async () => {
|
click: async () => {
|
||||||
if (this.enableRendererLogs) {
|
if (this.enableRendererLogs) {
|
||||||
this.enableRendererLogs = false;
|
this.enableRendererLogs = false;
|
||||||
|
unregisterConsoleMessages();
|
||||||
} else {
|
} else {
|
||||||
this.enableRendererLogs = true;
|
this.enableRendererLogs = true;
|
||||||
|
registerConsoleMessages();
|
||||||
}
|
}
|
||||||
const enableRendererLogs = this.enableRendererLogs;
|
const enableRendererLogs = this.enableRendererLogs;
|
||||||
await config.updateUserConfig({ enableRendererLogs });
|
await config.updateUserConfig({ enableRendererLogs });
|
||||||
|
@ -11,6 +11,7 @@ import { config } from './config-handler';
|
|||||||
import {
|
import {
|
||||||
handlePermissionRequests,
|
handlePermissionRequests,
|
||||||
monitorWindowActions,
|
monitorWindowActions,
|
||||||
|
onConsoleMessages,
|
||||||
removeWindowEventListener,
|
removeWindowEventListener,
|
||||||
sendInitialBoundChanges,
|
sendInitialBoundChanges,
|
||||||
} from './window-actions';
|
} from './window-actions';
|
||||||
@ -175,6 +176,7 @@ export const handleChildWindow = (webContents: WebContents): void => {
|
|||||||
}
|
}
|
||||||
windowHandler.addWindow(newWinKey, browserWin);
|
windowHandler.addWindow(newWinKey, browserWin);
|
||||||
const { url } = config.getGlobalConfigFields([ 'url' ]);
|
const { url } = config.getGlobalConfigFields([ 'url' ]);
|
||||||
|
const { enableRendererLogs } = config.getConfigFields([ 'enableRendererLogs' ]);
|
||||||
browserWin.webContents.send('page-load', {
|
browserWin.webContents.send('page-load', {
|
||||||
isWindowsOS,
|
isWindowsOS,
|
||||||
locale: i18n.getLocale(),
|
locale: i18n.getLocale(),
|
||||||
@ -201,24 +203,9 @@ export const handleChildWindow = (webContents: WebContents): void => {
|
|||||||
// Update initial bound changes
|
// Update initial bound changes
|
||||||
sendInitialBoundChanges(browserWin);
|
sendInitialBoundChanges(browserWin);
|
||||||
|
|
||||||
browserWin.webContents.on('console-message', (_event, level, message, _line, _sourceId) => {
|
|
||||||
const { enableRendererLogs } = config.getConfigFields([ 'enableRendererLogs' ]);
|
|
||||||
if (enableRendererLogs) {
|
if (enableRendererLogs) {
|
||||||
if (browserWin) {
|
browserWin.webContents.on('console-message', onConsoleMessages);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Remove all attached event listeners
|
// Remove all attached event listeners
|
||||||
browserWin.on('close', () => {
|
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 { SpellChecker } from './spell-check-handler';
|
||||||
import { checkIfBuildExpired } from './ttl-handler';
|
import { checkIfBuildExpired } from './ttl-handler';
|
||||||
import { versionHandler } from './version-handler';
|
import { versionHandler } from './version-handler';
|
||||||
import { handlePermissionRequests, monitorWindowActions } from './window-actions';
|
import { handlePermissionRequests, monitorWindowActions, onConsoleMessages } from './window-actions';
|
||||||
import {
|
import {
|
||||||
createComponentWindow,
|
createComponentWindow,
|
||||||
didVerifyAndRestoreWindow,
|
didVerifyAndRestoreWindow,
|
||||||
@ -114,7 +114,7 @@ export class WindowHandler {
|
|||||||
|
|
||||||
constructor(opts?: Electron.BrowserViewConstructorOptions) {
|
constructor(opts?: Electron.BrowserViewConstructorOptions) {
|
||||||
// Use these variables only on initial setup
|
// 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);
|
logger.info(`window-handler: main windows initialized with following config data`, this.config);
|
||||||
|
|
||||||
this.globalConfig = config.getGlobalConfigFields([ 'url', 'contextIsolation', 'contextOriginUrl' ]);
|
this.globalConfig = config.getGlobalConfigFields([ 'url', 'contextIsolation', 'contextOriginUrl' ]);
|
||||||
@ -385,25 +385,6 @@ export class WindowHandler {
|
|||||||
response === 0 ? this.mainWindow.reload() : this.mainWindow.close();
|
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
|
// Handle main window close
|
||||||
this.mainWindow.on('close', (event) => {
|
this.mainWindow.on('close', (event) => {
|
||||||
if (!this.mainWindow || !windowExists(this.mainWindow)) {
|
if (!this.mainWindow || !windowExists(this.mainWindow)) {
|
||||||
@ -476,6 +457,10 @@ export class WindowHandler {
|
|||||||
// Handle pop-outs window
|
// Handle pop-outs window
|
||||||
handleChildWindow(this.mainWindow.webContents);
|
handleChildWindow(this.mainWindow.webContents);
|
||||||
|
|
||||||
|
if (this.config.enableRendererLogs) {
|
||||||
|
this.mainWindow.webContents.on('console-message', onConsoleMessages);
|
||||||
|
}
|
||||||
|
|
||||||
return this.mainWindow;
|
return this.mainWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,8 +175,9 @@ class Logger {
|
|||||||
* @param logLevel {LogLevel} - Different type of log levels
|
* @param logLevel {LogLevel} - Different type of log levels
|
||||||
* @param message {string} - Log message
|
* @param message {string} - Log message
|
||||||
* @param data {array} - extra data to be logged
|
* @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) {
|
if (data && data.length > 0) {
|
||||||
data.forEach((param) => {
|
data.forEach((param) => {
|
||||||
message += `, '${param && typeof param}': ${JSON.stringify(param)}`;
|
message += `, '${param && typeof param}': ${JSON.stringify(param)}`;
|
||||||
@ -193,8 +194,10 @@ class Logger {
|
|||||||
default: electronLog.info(message);
|
default: electronLog.info(message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (sendToCloud) {
|
||||||
this.sendToCloud(this.formatLogMsg(logLevel, message));
|
this.sendToCloud(this.formatLogMsg(logLevel, message));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Formats the logs in the format that required
|
* Formats the logs in the format that required
|
||||||
|
Loading…
Reference in New Issue
Block a user