diff --git a/package.json b/package.json index 1b12f8b8..e05c4e66 100755 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "frankerfacez", "author": "Dan Salvato LLC", - "version": "4.17.8", + "version": "4.17.9", "description": "FrankerFaceZ is a Twitch enhancement suite.", "license": "Apache-2.0", "scripts": { diff --git a/src/raven.js b/src/raven.js index 04c8927e..8020d7a7 100644 --- a/src/raven.js +++ b/src/raven.js @@ -123,6 +123,28 @@ export default class RavenLogger extends Module { }); }); + // Twitch is greedy and preventDefault()s on errors... we don't like that. + this.twitch_logger = null; + + this.once('site:enabled', () => { + const munch = this.resolve('site.web_munch'); + if ( munch ) + munch.getRequire().then(() => { + const site = this.resolve('site'), + core = site.getCore(), + logger = core?.logger; + + if ( logger && ! logger.rootLogger ) { + this.twitch_logger = logger; + if ( logger.windowErrorListenerAdded ) { + // Move their event listener to the end, so Raven runs. + window.removeEventListener('error', logger.onWindowError); + window.addEventListener('error', logger.onWindowError); + } + } + }) + }); + this.raven = Raven; const raven_config = { @@ -133,6 +155,7 @@ export default class RavenLogger extends Module { environment: DEBUG ? 'development' : 'production', captureUnhandledRejections: false, ignoreErrors: [ + 'InvalidStateError', 'InvalidAccessError', 'out of memory', 'Access is denied.',