Bypass rageshake when warning about devtools (#7717)
This commit is contained in:
parent
78373e86ea
commit
ddb15cb19e
2 changed files with 14 additions and 1 deletions
|
@ -527,7 +527,8 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
|
||||||
"and contribute!",
|
"and contribute!",
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log(
|
global.mx_rage_logger.bypassRageshake(
|
||||||
|
"log",
|
||||||
`%c${waitText}\n%c${scamText}\n%c${devText}`,
|
`%c${waitText}\n%c${scamText}\n%c${devText}`,
|
||||||
`font-size:${largeFontSize}; color:blue;`,
|
`font-size:${largeFontSize}; color:blue;`,
|
||||||
`font-size:${normalFontSize}; color:red;`,
|
`font-size:${normalFontSize}; color:red;`,
|
||||||
|
|
|
@ -45,9 +45,13 @@ const FLUSH_RATE_MS = 30 * 1000;
|
||||||
// the length of log data we keep in indexeddb (and include in the reports)
|
// the length of log data we keep in indexeddb (and include in the reports)
|
||||||
const MAX_LOG_SIZE = 1024 * 1024 * 5; // 5 MB
|
const MAX_LOG_SIZE = 1024 * 1024 * 5; // 5 MB
|
||||||
|
|
||||||
|
type LogFunction = (...args: (Error | DOMException | object | string)[]) => void;
|
||||||
|
type LogFunctionName = "log" | "info" | "warn" | "error";
|
||||||
|
|
||||||
// A class which monkey-patches the global console and stores log lines.
|
// A class which monkey-patches the global console and stores log lines.
|
||||||
export class ConsoleLogger {
|
export class ConsoleLogger {
|
||||||
private logs = "";
|
private logs = "";
|
||||||
|
private originalFunctions: {[key in LogFunctionName]?: LogFunction} = {};
|
||||||
|
|
||||||
public monkeyPatch(consoleObj: Console): void {
|
public monkeyPatch(consoleObj: Console): void {
|
||||||
// Monkey-patch console logging
|
// Monkey-patch console logging
|
||||||
|
@ -60,6 +64,7 @@ export class ConsoleLogger {
|
||||||
Object.keys(consoleFunctionsToLevels).forEach((fnName) => {
|
Object.keys(consoleFunctionsToLevels).forEach((fnName) => {
|
||||||
const level = consoleFunctionsToLevels[fnName];
|
const level = consoleFunctionsToLevels[fnName];
|
||||||
const originalFn = consoleObj[fnName].bind(consoleObj);
|
const originalFn = consoleObj[fnName].bind(consoleObj);
|
||||||
|
this.originalFunctions[fnName] = originalFn;
|
||||||
consoleObj[fnName] = (...args) => {
|
consoleObj[fnName] = (...args) => {
|
||||||
this.log(level, ...args);
|
this.log(level, ...args);
|
||||||
originalFn(...args);
|
originalFn(...args);
|
||||||
|
@ -67,6 +72,13 @@ export class ConsoleLogger {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bypassRageshake(
|
||||||
|
fnName: LogFunctionName,
|
||||||
|
...args: (Error | DOMException | object | string)[]
|
||||||
|
): void {
|
||||||
|
this.originalFunctions[fnName](...args);
|
||||||
|
}
|
||||||
|
|
||||||
private log(level: string, ...args: (Error | DOMException | object | string)[]): void {
|
private log(level: string, ...args: (Error | DOMException | object | string)[]): void {
|
||||||
// We don't know what locale the user may be running so use ISO strings
|
// We don't know what locale the user may be running so use ISO strings
|
||||||
const ts = new Date().toISOString();
|
const ts = new Date().toISOString();
|
||||||
|
|
Loading…
Reference in a new issue