From 6820f02666942274e2e6ff3f88619808a54d7fa0 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Fri, 23 May 2025 09:13:16 -0400 Subject: [PATCH] Make EquicordHelper Bypass CSP CSP --- scripts/build/common.mjs | 2 +- scripts/generatePluginList.ts | 2 +- .../equicordHelper.tsx => equicordHelper/index.tsx} | 0 src/equicordplugins/equicordHelper/native.ts | 9 +++++++++ src/main/csp.ts | 2 +- 5 files changed, 12 insertions(+), 3 deletions(-) rename src/equicordplugins/{_core/equicordHelper.tsx => equicordHelper/index.tsx} (100%) create mode 100644 src/equicordplugins/equicordHelper/native.ts diff --git a/scripts/build/common.mjs b/scripts/build/common.mjs index ca3eab14..061cb462 100644 --- a/scripts/build/common.mjs +++ b/scripts/build/common.mjs @@ -146,7 +146,7 @@ export const globPlugins = kind => ({ }); build.onLoad({ filter, namespace: "import-plugins" }, async () => { - const pluginDirs = ["plugins/_api", "plugins/_core", "plugins", "userplugins", "equicordplugins", "equicordplugins/_core"]; + const pluginDirs = ["plugins/_api", "plugins/_core", "plugins", "userplugins", "equicordplugins"]; let code = ""; let pluginsCode = "\n"; let metaCode = "\n"; diff --git a/scripts/generatePluginList.ts b/scripts/generatePluginList.ts index d2dd2663..e1cb18af 100644 --- a/scripts/generatePluginList.ts +++ b/scripts/generatePluginList.ts @@ -264,7 +264,7 @@ function isPluginFile({ name }: { name: string; }) { const plugins = [] as PluginData[]; - await Promise.all(["src/plugins", "src/plugins/_core", "src/equicordplugins", "src/equicordplugins/_core"].flatMap(dir => + await Promise.all(["src/plugins", "src/plugins/_core", "src/equicordplugins"].flatMap(dir => readdirSync(dir, { withFileTypes: true }) .filter(isPluginFile) .map(async dirent => { diff --git a/src/equicordplugins/_core/equicordHelper.tsx b/src/equicordplugins/equicordHelper/index.tsx similarity index 100% rename from src/equicordplugins/_core/equicordHelper.tsx rename to src/equicordplugins/equicordHelper/index.tsx diff --git a/src/equicordplugins/equicordHelper/native.ts b/src/equicordplugins/equicordHelper/native.ts new file mode 100644 index 00000000..84887c48 --- /dev/null +++ b/src/equicordplugins/equicordHelper/native.ts @@ -0,0 +1,9 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2025 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import { CspPolicies, MediaScriptsAndCssSrc } from "@main/csp"; + +CspPolicies["*"] = MediaScriptsAndCssSrc; diff --git a/src/main/csp.ts b/src/main/csp.ts index dfdec9de..d5027ea0 100644 --- a/src/main/csp.ts +++ b/src/main/csp.ts @@ -12,7 +12,7 @@ const ConnectSrc = ["connect-src"]; const MediaSrc = [...ConnectSrc, "img-src", "media-src"]; const CssSrc = ["style-src", "font-src"]; const MediaAndCssSrc = [...MediaSrc, ...CssSrc]; -const MediaScriptsAndCssSrc = [...MediaAndCssSrc, "script-src", "worker-src"]; +export const MediaScriptsAndCssSrc = [...MediaAndCssSrc, "script-src", "worker-src"]; // Plugins can whitelist their own domains by importing this object in their native.ts // script and just adding to it. But generally, you should just edit this file instead