Handle ERR_FAILED from loadURL when shutting down
This commit is contained in:
parent
1f95c2299e
commit
3906f73ffd
1 changed files with 36 additions and 16 deletions
52
app/main.ts
52
app/main.ts
|
@ -673,6 +673,21 @@ async function getTitleBarOverlay(): Promise<TitleBarOverlayOptions | false> {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function safeLoadURL(window: BrowserWindow, url: string): Promise<void> {
|
||||||
|
try {
|
||||||
|
await window.loadURL(url);
|
||||||
|
} catch (error) {
|
||||||
|
if (windowState.readyForShutdown() && error?.code === 'ERR_FAILED') {
|
||||||
|
getLogger().warn(
|
||||||
|
'safeLoadURL: ignoring ERR_FAILED because we are shutting down',
|
||||||
|
error
|
||||||
|
);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function createWindow() {
|
async function createWindow() {
|
||||||
const usePreloadBundle =
|
const usePreloadBundle =
|
||||||
!isTestEnvironment(getEnvironment()) || forcePreloadBundle;
|
!isTestEnvironment(getEnvironment()) || forcePreloadBundle;
|
||||||
|
@ -953,15 +968,12 @@ async function createWindow() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (getEnvironment() === Environment.Test) {
|
await safeLoadURL(
|
||||||
await mainWindow.loadURL(
|
mainWindow,
|
||||||
await prepareFileUrl([__dirname, '../test/index.html'])
|
getEnvironment() === Environment.Test
|
||||||
);
|
? await prepareFileUrl([__dirname, '../test/index.html'])
|
||||||
} else {
|
: await prepareFileUrl([__dirname, '../background.html'])
|
||||||
await mainWindow.loadURL(
|
);
|
||||||
await prepareFileUrl([__dirname, '../background.html'])
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Renderer asks if we are done with the database
|
// Renderer asks if we are done with the database
|
||||||
|
@ -1189,7 +1201,8 @@ async function showScreenShareWindow(sourceName: string) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
await screenShareWindow.loadURL(
|
await safeLoadURL(
|
||||||
|
screenShareWindow,
|
||||||
await prepareFileUrl([__dirname, '../screenShare.html'])
|
await prepareFileUrl([__dirname, '../screenShare.html'])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1238,7 +1251,10 @@ async function showAbout() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
await aboutWindow.loadURL(await prepareFileUrl([__dirname, '../about.html']));
|
await safeLoadURL(
|
||||||
|
aboutWindow,
|
||||||
|
await prepareFileUrl([__dirname, '../about.html'])
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
let settingsWindow: BrowserWindow | undefined;
|
let settingsWindow: BrowserWindow | undefined;
|
||||||
|
@ -1289,7 +1305,8 @@ async function showSettingsWindow() {
|
||||||
settingsWindow.show();
|
settingsWindow.show();
|
||||||
});
|
});
|
||||||
|
|
||||||
await settingsWindow.loadURL(
|
await safeLoadURL(
|
||||||
|
settingsWindow,
|
||||||
await prepareFileUrl([__dirname, '../settings.html'])
|
await prepareFileUrl([__dirname, '../settings.html'])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1380,7 +1397,7 @@ async function showStickerCreator() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
await stickerCreatorWindow.loadURL(await appUrl);
|
await safeLoadURL(stickerCreatorWindow, await appUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
let debugLogWindow: BrowserWindow | undefined;
|
let debugLogWindow: BrowserWindow | undefined;
|
||||||
|
@ -1436,7 +1453,8 @@ async function showDebugLogWindow() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
await debugLogWindow.loadURL(
|
await safeLoadURL(
|
||||||
|
debugLogWindow,
|
||||||
await prepareFileUrl([__dirname, '../debug_log.html'])
|
await prepareFileUrl([__dirname, '../debug_log.html'])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1496,7 +1514,8 @@ function showPermissionsPopupWindow(forCalling: boolean, forCamera: boolean) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
await permissionsPopupWindow.loadURL(
|
await safeLoadURL(
|
||||||
|
permissionsPopupWindow,
|
||||||
await prepareFileUrl([__dirname, '../permissions_popup.html'], {
|
await prepareFileUrl([__dirname, '../permissions_popup.html'], {
|
||||||
forCalling,
|
forCalling,
|
||||||
forCamera,
|
forCamera,
|
||||||
|
@ -1843,7 +1862,8 @@ app.on('ready', async () => {
|
||||||
loadingWindow = undefined;
|
loadingWindow = undefined;
|
||||||
});
|
});
|
||||||
|
|
||||||
await loadingWindow.loadURL(
|
await safeLoadURL(
|
||||||
|
loadingWindow,
|
||||||
await prepareFileUrl([__dirname, '../loading.html'])
|
await prepareFileUrl([__dirname, '../loading.html'])
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue