mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
wait app to be ready before creating a BrowserWindow for system proxy resolver (#7443)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
parent
b5e564271e
commit
7bae712703
@ -10,11 +10,12 @@ const resolveSystemProxyFromElectronInjectable = getInjectable({
|
|||||||
id: "resolve-system-proxy-from-electron",
|
id: "resolve-system-proxy-from-electron",
|
||||||
|
|
||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const helperWindow = di.inject(resolveSystemProxyWindowInjectable);
|
|
||||||
const withErrorLoggingFor = di.inject(withErrorLoggingInjectable);
|
const withErrorLoggingFor = di.inject(withErrorLoggingInjectable);
|
||||||
const withErrorLogging = withErrorLoggingFor(() => "Error resolving proxy");
|
const withErrorLogging = withErrorLoggingFor(() => "Error resolving proxy");
|
||||||
|
|
||||||
return withErrorLogging(async (url: string) => {
|
return withErrorLogging(async (url: string) => {
|
||||||
|
const helperWindow = await di.inject(resolveSystemProxyWindowInjectable);
|
||||||
|
|
||||||
return await helperWindow.webContents.session.resolveProxy(url);
|
return await helperWindow.webContents.session.resolveProxy(url);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
@ -32,7 +32,7 @@ describe("technical: resolve-system-proxy-from-electron", () => {
|
|||||||
|
|
||||||
di.override(
|
di.override(
|
||||||
resolveSystemProxyWindowInjectable,
|
resolveSystemProxyWindowInjectable,
|
||||||
() => ({
|
async () => ({
|
||||||
webContents: {
|
webContents: {
|
||||||
session: {
|
session: {
|
||||||
resolveProxy: resolveSystemProxyMock,
|
resolveProxy: resolveSystemProxyMock,
|
||||||
@ -73,7 +73,7 @@ describe("technical: resolve-system-proxy-from-electron", () => {
|
|||||||
|
|
||||||
di.override(
|
di.override(
|
||||||
resolveSystemProxyWindowInjectable,
|
resolveSystemProxyWindowInjectable,
|
||||||
() => ({
|
async () => ({
|
||||||
webContents: {
|
webContents: {
|
||||||
session: {
|
session: {
|
||||||
resolveProxy: () => {
|
resolveProxy: () => {
|
||||||
|
|||||||
@ -8,8 +8,8 @@ import type { BrowserWindow, Session, WebContents } from "electron";
|
|||||||
import resolveSystemProxyWindowInjectable from "./resolve-system-proxy-window.injectable";
|
import resolveSystemProxyWindowInjectable from "./resolve-system-proxy-window.injectable";
|
||||||
|
|
||||||
export default getGlobalOverride(
|
export default getGlobalOverride(
|
||||||
resolveSystemProxyWindowInjectable,
|
resolveSystemProxyWindowInjectable,
|
||||||
() => ({
|
async () => ({
|
||||||
webContents: {
|
webContents: {
|
||||||
session: {
|
session: {
|
||||||
resolveProxy: () => "DIRECT",
|
resolveProxy: () => "DIRECT",
|
||||||
|
|||||||
@ -4,13 +4,21 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { BrowserWindow } from "electron";
|
import { BrowserWindow } from "electron";
|
||||||
|
import electronAppInjectable from "../../electron-app/electron-app.injectable";
|
||||||
|
|
||||||
const resolveSystemProxyWindowInjectable = getInjectable({
|
const resolveSystemProxyWindowInjectable = getInjectable({
|
||||||
id: "resolve-system-proxy-window",
|
id: "resolve-system-proxy-window",
|
||||||
instantiate: () => {
|
instantiate: async (di) => {
|
||||||
const window = new BrowserWindow({ show: false });
|
const app = di.inject(electronAppInjectable);
|
||||||
|
|
||||||
window.hide();
|
await app.whenReady();
|
||||||
|
|
||||||
|
const window = new BrowserWindow({
|
||||||
|
show: false,
|
||||||
|
paintWhenInitiallyHidden: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
window.hide();
|
||||||
|
|
||||||
return window;
|
return window;
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user