Add potential workarounds for renderer crash

This commit is contained in:
smartfrigde 2023-06-17 18:33:07 +02:00
parent a531d4e30f
commit 5aefe765ec
4 changed files with 59 additions and 46 deletions

View file

@ -21,6 +21,11 @@ import {createSplashWindow} from "./splash/main";
export let iconPath: string;
export let settings: any;
export let customTitlebar: boolean;
app.on("render-process-gone", (event, webContents, details) => {
if (details.reason == "crashed") {
app.relaunch();
}
});
async function args(): Promise<void> {
let argNum = 2;
if (process.argv[0] == "electron") argNum++;

View file

@ -54,19 +54,21 @@ export function createSettingsWindow(): void {
fs.writeFileSync(path.join(userDataPath, "/disabled.txt"), "");
}
settingsWindow.webContents.on("did-finish-load", () => {
fs.readdirSync(themesFolder).forEach((file) => {
try {
const manifest = fs.readFileSync(`${themesFolder}/${file}/manifest.json`, "utf8");
let themeFile = JSON.parse(manifest);
settingsWindow.webContents.send(
"themeLoader",
fs.readFileSync(`${themesFolder}/${file}/${themeFile.theme}`, "utf-8")
);
console.log(`%cLoaded ${themeFile.name} made by ${themeFile.author}`, "color:red");
} catch (err) {
console.error(err);
}
});
if (!settingsWindow.webContents.isLoading()) {
fs.readdirSync(themesFolder).forEach((file) => {
try {
const manifest = fs.readFileSync(`${themesFolder}/${file}/manifest.json`, "utf8");
let themeFile = JSON.parse(manifest);
settingsWindow.webContents.send(
"themeLoader",
fs.readFileSync(`${themesFolder}/${file}/${themeFile.theme}`, "utf-8")
);
console.log(`%cLoaded ${themeFile.name} made by ${themeFile.author}`, "color:red");
} catch (err) {
console.error(err);
}
});
}
});
ipcMain.on("saveSettings", (_event, args: Settings) => {
console.log(args);

View file

@ -195,14 +195,16 @@ export function createTManagerWindow(): void {
}
});
themeWindow.webContents.on("did-finish-load", () => {
fs.readdirSync(themesFolder).forEach((file) => {
try {
const manifest = fs.readFileSync(`${themesFolder}/${file}/manifest.json`, "utf8");
themeWindow.webContents.send("themeManifest", manifest);
} catch (err) {
console.error(err);
}
});
if (!themeWindow.webContents.isLoading()) {
fs.readdirSync(themesFolder).forEach((file) => {
try {
const manifest = fs.readFileSync(`${themesFolder}/${file}/manifest.json`, "utf8");
themeWindow.webContents.send("themeManifest", manifest);
} catch (err) {
console.error(err);
}
});
}
});
managerLoadPage();

View file

@ -198,28 +198,30 @@ async function doAfterDefiningTheWindow(): Promise<void> {
fs.writeFileSync(path.join(userDataPath, "/disabled.txt"), "");
}
mainWindow.webContents.on("did-finish-load", () => {
fs.readdirSync(themesFolder).forEach((file) => {
try {
const manifest = fs.readFileSync(`${themesFolder}/${file}/manifest.json`, "utf8");
let themeFile = JSON.parse(manifest);
if (
fs
.readFileSync(path.join(userDataPath, "/disabled.txt"))
.toString()
.includes(themeFile.name.replace(" ", "-"))
) {
console.log(`%cSkipped ${themeFile.name} made by ${themeFile.author}`, "color:red");
} else {
mainWindow.webContents.send(
"themeLoader",
fs.readFileSync(`${themesFolder}/${file}/${themeFile.theme}`, "utf-8")
);
console.log(`%cLoaded ${themeFile.name} made by ${themeFile.author}`, "color:red");
if (!mainWindow.webContents.isLoading()) {
fs.readdirSync(themesFolder).forEach((file) => {
try {
const manifest = fs.readFileSync(`${themesFolder}/${file}/manifest.json`, "utf8");
let themeFile = JSON.parse(manifest);
if (
fs
.readFileSync(path.join(userDataPath, "/disabled.txt"))
.toString()
.includes(themeFile.name.replace(" ", "-"))
) {
console.log(`%cSkipped ${themeFile.name} made by ${themeFile.author}`, "color:red");
} else {
mainWindow.webContents.send(
"themeLoader",
fs.readFileSync(`${themesFolder}/${file}/${themeFile.theme}`, "utf-8")
);
console.log(`%cLoaded ${themeFile.name} made by ${themeFile.author}`, "color:red");
}
} catch (err) {
console.error(err);
}
} catch (err) {
console.error(err);
}
});
});
}
});
await setMenu();
mainWindow.on("close", async (e) => {
@ -370,9 +372,11 @@ export async function createInviteWindow(code: string): Promise<void> {
});
inviteWindow.loadURL(formInviteURL);
inviteWindow.webContents.once("did-finish-load", () => {
inviteWindow.show();
inviteWindow.webContents.once("will-navigate", () => {
inviteWindow.close();
});
if (!mainWindow.webContents.isLoading()) {
inviteWindow.show();
inviteWindow.webContents.once("will-navigate", () => {
inviteWindow.close();
});
}
});
}