Fix logging bugs, add mousemove to blacklist by default
This commit is contained in:
parent
f5f3e2754f
commit
c8d943da0b
@ -158,6 +158,7 @@ class Logger {
|
|||||||
stackInfo['aard'] = false;
|
stackInfo['aard'] = false;
|
||||||
stackInfo['keyboard'] = false;
|
stackInfo['keyboard'] = false;
|
||||||
stackInfo['popup'] = false;
|
stackInfo['popup'] = false;
|
||||||
|
stackInfo['mousemove'] = false;
|
||||||
|
|
||||||
// here we check which source triggered the action. We know that only one of these
|
// here we check which source triggered the action. We know that only one of these
|
||||||
// functions will appear in the trace at most once (and if more than one of these
|
// functions will appear in the trace at most once (and if more than one of these
|
||||||
@ -179,33 +180,39 @@ class Logger {
|
|||||||
} else if (line.startsWith('processReceivedMessage')) {
|
} else if (line.startsWith('processReceivedMessage')) {
|
||||||
stackInfo['popup'] = true;
|
stackInfo['popup'] = true;
|
||||||
break;
|
break;
|
||||||
|
} else if (line.startsWith('handleMouseMove')) {
|
||||||
|
stackInfo['mousemove'] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return stackInfo;
|
return stackInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
canLog(component, stackInfo) {
|
// test for blacklisted origin
|
||||||
|
isBlacklistedOrigin(stackInfo) {
|
||||||
|
if (stackInfo.periodicPlayerCheck) {
|
||||||
|
return !this.conf.allowBlacklistedOrigins?.periodicPlayerCheck;
|
||||||
|
}
|
||||||
|
if (stackInfo.periodicVideoStyleChangeCheck) {
|
||||||
|
return !this.conf.allowBlacklistedOrigins?.periodicVideoStyleChangeCheck;
|
||||||
|
}
|
||||||
|
if (stackInfo.mousemove) {
|
||||||
|
return !this.conf.allowBlacklistedOrigins?.handleMouseMove;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// NOTE: THIS FUNCTION IS NEVER USED INTERNALLY!
|
||||||
|
canLog(component) {
|
||||||
if (!this.conf.allowLogging) {
|
if (!this.conf.allowLogging) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we call this function from outside of logger,
|
const stackInfo = this.parseStack();
|
||||||
// stackInfo may not be provided. Here's a fallback.
|
if (this.isBlacklistedOrigin(stackInfo)) {
|
||||||
if (stackInfo === undefined) {
|
return false;
|
||||||
stackInfo = this.parseStack();
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// check if log belongs to a blacklisted origin. If yes, then only allow content to be logged if the
|
|
||||||
// origin is explicitly whitelisted in the conf object
|
|
||||||
if (stackInfo) {
|
|
||||||
if (stackInfo.periodicPlayerCheck) {
|
|
||||||
return this.conf.allowBlacklistedOrigins && this.conf.allowBlacklistedOrigins.periodicPlayerCheck;
|
|
||||||
}
|
|
||||||
if (stackInfo.periodicVideoStyleChangeCheck) {
|
|
||||||
return this.conf.allowBlacklistedOrigins && this.conf.allowBlacklistedOrigins.periodicVideoStyleChangeCheck;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// if either of these two is true, we allow logging to happen (forbidden origins were checked above)
|
// if either of these two is true, we allow logging to happen (forbidden origins were checked above)
|
||||||
return (this.canLogFile(component) || this.canLogConsole(component));
|
return (this.canLogFile(component) || this.canLogConsole(component));
|
||||||
@ -215,7 +222,8 @@ class Logger {
|
|||||||
if (!this.conf.fileOptions.enabled || this.temp_disable) {
|
if (!this.conf.fileOptions.enabled || this.temp_disable) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (performance.now() > this.stopTime) {
|
if (!this.stopTime || performance.now() > this.stopTime) {
|
||||||
|
this.logger.log('force', 'debug', '-----[ alloted time has run out. logging will stop ]-----');
|
||||||
this.conf.allowLogging = false;
|
this.conf.allowLogging = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -234,6 +242,7 @@ class Logger {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (performance.now() > this.stopTime) {
|
if (performance.now() > this.stopTime) {
|
||||||
|
this.logger.log('force', 'debug', '-----[ alloted time has run out. logging will stop ]-----');
|
||||||
this.conf.allowLogging = false;
|
this.conf.allowLogging = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -251,15 +260,22 @@ class Logger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// level is unused as of now, but this may change in the future
|
// level is unused as of now, but this may change in the future
|
||||||
// levels: 'info', 'warn', 'error'
|
// levels: 'info', 'warn', 'error'.
|
||||||
|
// if level is `true` (bool), logging happens regardless of any other
|
||||||
|
// settings
|
||||||
log(level, component, ...message) {
|
log(level, component, ...message) {
|
||||||
if (!this.conf) {
|
if (!this.conf) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const stackInfo = this.parseStack();
|
const stackInfo = this.parseStack();
|
||||||
|
|
||||||
|
// don't log stuff from blacklisted origin (unless logger conf says otherwise)
|
||||||
|
if (this.isBlacklistedOrigin(stackInfo)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.conf.fileOptions.enabled) {
|
if (this.conf.fileOptions.enabled) {
|
||||||
if (this.canLogFile(component, stackInfo)) {
|
if (this.canLogFile(component) || level === 'force') {
|
||||||
let ts = performance.now();
|
let ts = performance.now();
|
||||||
if (ts <= this.history[this.history.length - 1]) {
|
if (ts <= this.history[this.history.length - 1]) {
|
||||||
ts = this.history[this.history.length - 1] + 0.00001;
|
ts = this.history[this.history.length - 1] + 0.00001;
|
||||||
@ -273,7 +289,7 @@ class Logger {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.conf.consoleOptions.enabled) {
|
if (this.conf.consoleOptions.enabled) {
|
||||||
if (this.canLogConsole(component, stackInfo)) {
|
if (this.canLogConsole(component) || level === 'force') {
|
||||||
console.log(...message, {stack: stackInfo});
|
console.log(...message, {stack: stackInfo});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -71,8 +71,9 @@ class UW {
|
|||||||
// as well as logging to file. Exclusions happen because these functions — being periodic in
|
// as well as logging to file. Exclusions happen because these functions — being periodic in
|
||||||
// nature as well as doing a lot of work — usually clog console too fast without providing
|
// nature as well as doing a lot of work — usually clog console too fast without providing
|
||||||
// any valuable info.
|
// any valuable info.
|
||||||
'periodicPlayerCheck': true,
|
// 'periodicPlayerCheck': true,
|
||||||
'periodicVideoStyleChangeCheck': true,
|
// 'periodicVideoStyleChangeCheck': true,
|
||||||
|
'handleMouseMove': false,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.logger = new Logger();
|
this.logger = new Logger();
|
||||||
|
Loading…
Reference in New Issue
Block a user