fix(notrack): murder sentry

This commit is contained in:
V 2023-12-14 01:29:57 +01:00
parent b32959126e
commit a8b0ce6f03
No known key found for this signature in database
GPG key ID: A1DC0CFB5615D905

View file

@ -58,6 +58,9 @@ if (window[WEBPACK_CHUNK]) {
// normally, this is populated via webpackGlobal.push, which we patch below.
// However, Discord has their .m prepopulated.
// Thus, we use this hack to immediately access their wreq.m and patch all already existing factories
//
// Update: Discord now has TWO webpack instances. Their normal one and sentry
// Sentry does not push chunks to the global at all, so this same patch now also handles their sentry modules
Object.defineProperty(Function.prototype, "m", {
set(v: any) {
// When using react devtools or other extensions, we may also catch their webpack here.
@ -65,8 +68,6 @@ if (window[WEBPACK_CHUNK]) {
if (new Error().stack?.includes("discord.com")) {
logger.info("Found webpack module factory");
patchFactories(v);
delete (Function.prototype as any).m;
}
Object.defineProperty(this, "m", {
@ -142,7 +143,7 @@ function patchFactories(factories: Record<string | number, (module: { exports: a
// There are (at the time of writing) 11 modules exporting the window
// Make these non enumerable to improve webpack search performance
if (exports === window) {
if (exports === window && require.c) {
Object.defineProperty(require.c, id, {
value: require.c[id],
enumerable: false,