diff options
author | Roman / Linnea Gräf <romangraef@gmail.com> | 2022-12-01 19:16:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-01 19:16:09 +0100 |
commit | 0ff6d3dd4168ee72f9216cfcccc9307bae5b25a7 (patch) | |
tree | 5f742d86dc9995615a241a210fc70a62cd82ecd0 /browser/background.js | |
parent | 734054ff68a103482bff903bb384bc24576c5499 (diff) | |
download | Vencord-0ff6d3dd4168ee72f9216cfcccc9307bae5b25a7.tar.gz Vencord-0ff6d3dd4168ee72f9216cfcccc9307bae5b25a7.tar.bz2 Vencord-0ff6d3dd4168ee72f9216cfcccc9307bae5b25a7.zip |
Add Firefox extension build (#277)
Diffstat (limited to 'browser/background.js')
-rw-r--r-- | browser/background.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/browser/background.js b/browser/background.js new file mode 100644 index 0000000..5c99dd8 --- /dev/null +++ b/browser/background.js @@ -0,0 +1,48 @@ +/* + * Vencord, a modification for Discord's desktop app + * Copyright (c) 2022 Linnea Gräf + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. +*/ + +function setContentTypeOnStylesheets(details) { + if (details.type === "stylesheet") { + details.responseHeaders = details.responseHeaders.filter(it => it.name.toLowerCase() !== 'content-type'); + details.responseHeaders.push({ name: "Content-Type", value: "text/css" }); + } + return { responseHeaders: details.responseHeaders }; +} + +var cspHeaders = [ + "content-security-policy", + "content-security-policy-report-only", +]; + +function removeCSPHeaders(details) { + return { + responseHeaders: details.responseHeaders.filter(header => + !cspHeaders.includes(header.name.toLowerCase())) + }; +} + + + + +browser.webRequest.onHeadersReceived.addListener( + setContentTypeOnStylesheets, { urls: ["https://raw.githubusercontent.com/*"] }, ["blocking", "responseHeaders"] +); + +browser.webRequest.onHeadersReceived.addListener( + removeCSPHeaders, { urls: ["https://raw.githubusercontent.com/*", "*://*.discord.com/*"] }, ["blocking", "responseHeaders"] +); |