|
|
|
@ -17,7 +17,7 @@
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
import { onceDefined } from "@utils/onceDefined";
|
|
|
|
|
import electron, { app, BrowserWindowConstructorOptions, Menu } from "electron";
|
|
|
|
|
import electron, { app, BrowserWindowConstructorOptions, Menu, protocol, session } from "electron";
|
|
|
|
|
import { dirname, join } from "path";
|
|
|
|
|
|
|
|
|
|
import { initIpc } from "./ipcMain";
|
|
|
|
@ -118,10 +118,10 @@ if (!process.argv.includes("--vanilla")) {
|
|
|
|
|
|
|
|
|
|
process.env.DATA_DIR = join(app.getPath("userData"), "..", "Vencord");
|
|
|
|
|
|
|
|
|
|
electron.app.whenReady().then(() => {
|
|
|
|
|
app.whenReady().then(() => {
|
|
|
|
|
// Source Maps! Maybe there's a better way but since the renderer is executed
|
|
|
|
|
// from a string I don't think any other form of sourcemaps would work
|
|
|
|
|
electron.protocol.registerFileProtocol("vencord", ({ url: unsafeUrl }, cb) => {
|
|
|
|
|
protocol.registerFileProtocol("vencord", ({ url: unsafeUrl }, cb) => {
|
|
|
|
|
let url = unsafeUrl.slice("vencord://".length);
|
|
|
|
|
if (url.endsWith("/")) url = url.slice(0, -1);
|
|
|
|
|
switch (url) {
|
|
|
|
@ -177,7 +177,7 @@ if (!process.argv.includes("--vanilla")) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
electron.session.defaultSession.webRequest.onHeadersReceived(({ responseHeaders, resourceType }, cb) => {
|
|
|
|
|
session.defaultSession.webRequest.onHeadersReceived(({ responseHeaders, resourceType }, cb) => {
|
|
|
|
|
if (responseHeaders) {
|
|
|
|
|
if (resourceType === "mainFrame")
|
|
|
|
|
patchCsp(responseHeaders, "content-security-policy");
|
|
|
|
@ -189,6 +189,11 @@ if (!process.argv.includes("--vanilla")) {
|
|
|
|
|
}
|
|
|
|
|
cb({ cancel: false, responseHeaders });
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// assign a noop to onHeadersReceived to prevent other mods from adding their own incompatible ones.
|
|
|
|
|
// For instance, OpenAsar adds their own that doesn't fix content-type for stylesheets which makes it
|
|
|
|
|
// impossible to load css from github raw despite our fix above
|
|
|
|
|
session.defaultSession.webRequest.onHeadersReceived = () => { };
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
console.log("[Vencord] Running in vanilla mode. Not loading Vencord");
|
|
|
|
|