mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-26 20:39:08 +01:00
889ca62723
The `disable-console` script introduced in #10040 used an arrow- function no-op function to replace `console.log` and `console.info`. This replacement function was early-bound to the `this` context of the `disable-console` script, because that's how arrow functions work. This violates an assumption baked into Sentry, which also replaces the `console` functions. It wraps them in a function it uses to track console logs as breadcrumbs. This wrapper function blows up for some reason if the "original" `console` function is early-bound to a `this` value of `undefined`. This resulted in various UI freezes. One example is during onboarding, when using Firefox with Enhanced Tracking Protection set in "strict" mode. After submitting a password in the 'Create wallet' flow, the Sentry `console` wrapper would throw and leave the user stuck on the loading screen. By replacing the no-op arrow function with a no-op function declaration, the problem has been resolved. Relates to #10097
14 lines
330 B
JavaScript
14 lines
330 B
JavaScript
// Disable console.log in contentscript to prevent SES/lockdown logging to external page
|
|
// eslint-disable-next-line import/unambiguous
|
|
if (
|
|
!(typeof process !== 'undefined' && process.env.METAMASK_DEBUG) &&
|
|
typeof console !== undefined
|
|
) {
|
|
console.log = noop
|
|
console.info = noop
|
|
}
|
|
|
|
function noop() {
|
|
return undefined
|
|
}
|