diff --git a/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-from-electron.injectable.ts b/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-from-electron.injectable.ts index 4ad2da39b8..1a111f7dd7 100644 --- a/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-from-electron.injectable.ts +++ b/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-from-electron.injectable.ts @@ -10,11 +10,12 @@ const resolveSystemProxyFromElectronInjectable = getInjectable({ id: "resolve-system-proxy-from-electron", instantiate: (di) => { - const helperWindow = di.inject(resolveSystemProxyWindowInjectable); const withErrorLoggingFor = di.inject(withErrorLoggingInjectable); const withErrorLogging = withErrorLoggingFor(() => "Error resolving proxy"); return withErrorLogging(async (url: string) => { + const helperWindow = await di.inject(resolveSystemProxyWindowInjectable); + return await helperWindow.webContents.session.resolveProxy(url); }); }, diff --git a/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-from-electron.test.ts b/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-from-electron.test.ts index 9a8b485ef7..9d1d6a3477 100644 --- a/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-from-electron.test.ts +++ b/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-from-electron.test.ts @@ -32,7 +32,7 @@ describe("technical: resolve-system-proxy-from-electron", () => { di.override( resolveSystemProxyWindowInjectable, - () => ({ + async () => ({ webContents: { session: { resolveProxy: resolveSystemProxyMock, @@ -73,7 +73,7 @@ describe("technical: resolve-system-proxy-from-electron", () => { di.override( resolveSystemProxyWindowInjectable, - () => ({ + async () => ({ webContents: { session: { resolveProxy: () => { diff --git a/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-window.global-override-for-injectable.ts b/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-window.global-override-for-injectable.ts index 9e9609b64a..4269f5d9d8 100644 --- a/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-window.global-override-for-injectable.ts +++ b/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-window.global-override-for-injectable.ts @@ -9,7 +9,7 @@ import resolveSystemProxyWindowInjectable from "./resolve-system-proxy-window.in export default getGlobalOverride( resolveSystemProxyWindowInjectable, - () => ({ + async () => ({ webContents: { session: { resolveProxy: () => "DIRECT", diff --git a/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-window.injectable.ts b/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-window.injectable.ts index c5dd1bb875..91536c8204 100644 --- a/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-window.injectable.ts +++ b/packages/core/src/main/utils/resolve-system-proxy/resolve-system-proxy-window.injectable.ts @@ -4,12 +4,24 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { BrowserWindow } from "electron"; +import electronAppInjectable from "../../electron-app/electron-app.injectable"; const resolveSystemProxyWindowInjectable = getInjectable({ id: "resolve-system-proxy-window", - instantiate: () => new BrowserWindow({ - show: false, - }), + instantiate: async (di) => { + const app = di.inject(electronAppInjectable); + + await app.whenReady(); + + const window = new BrowserWindow({ + show: false, + paintWhenInitiallyHidden: false, + }); + + window.hide(); + + return window; + }, causesSideEffects: true, });