From 84fe58294c34861ce7fd88e2ebf75142a175247c Mon Sep 17 00:00:00 2001 From: Zack Rauen Date: Tue, 27 Jul 2021 17:19:45 -0400 Subject: [PATCH] Add temporary fix for mac stable - fixes #889 - fixes #918 - fixes #896 --- injector/src/modules/betterdiscord.js | 6 ++++++ injector/src/preload.js | 26 ++++++++++++++++---------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/injector/src/modules/betterdiscord.js b/injector/src/modules/betterdiscord.js index 30c60108..3edf25e6 100644 --- a/injector/src/modules/betterdiscord.js +++ b/injector/src/modules/betterdiscord.js @@ -77,6 +77,12 @@ export default class BetterDiscord { static setup(browserWindow) { // Setup some useful vars to avoid blocking IPC calls + try { + process.env.DISCORD_RELEASE_CHANNEL = __non_webpack_require__(buildInfoFile).releaseChannel; + } + catch (e) { + process.env.DISCORD_RELEASE_CHANNEL = "stable"; + } process.env.DISCORD_PRELOAD = browserWindow.__originalPreload; process.env.DISCORD_APP_PATH = appPath; process.env.DISCORD_USER_DATA = electron.app.getPath("userData"); diff --git a/injector/src/preload.js b/injector/src/preload.js index 59a4b936..f5cf245d 100644 --- a/injector/src/preload.js +++ b/injector/src/preload.js @@ -23,18 +23,24 @@ Object.defineProperty(window, "webpackJsonp", { electron.webFrame.top.context.global = electron.webFrame.top.context; electron.webFrame.top.context.require = require; electron.webFrame.top.context.Buffer = Buffer; -electron.webFrame.top.context.process = new class PatchedProcess extends NodeEvents { - get __ORIGINAL_PROCESS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED__() {return process;} - constructor() { - super(); +if (process.platform === "darwin" && process.env.DISCORD_RELEASE_CHANNEL !== "canary") { + electron.webFrame.top.context.process = process; +} +else { + electron.webFrame.top.context.process = new class PatchedProcess extends NodeEvents { + get __ORIGINAL_PROCESS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED__() {return process;} - Object.assign(this, - cloneObject(process, {}, Object.keys(NodeEvents.prototype)), - cloneObject(process, {}) - ); - } -}; + constructor() { + super(); + + Object.assign(this, + cloneObject(process, {}, Object.keys(NodeEvents.prototype)), + cloneObject(process, {}) + ); + } + }; +} // Load Discord's original preload const preload = process.env.DISCORD_PRELOAD;