From 0ff6d3dd4168ee72f9216cfcccc9307bae5b25a7 Mon Sep 17 00:00:00 2001 From: Roman / Linnea Gräf Date: Thu, 1 Dec 2022 19:16:09 +0100 Subject: Add Firefox extension build (#277) --- browser/background.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ browser/manifest.json | 40 ---------------------------------------- browser/manifestv2.json | 33 +++++++++++++++++++++++++++++++++ browser/manifestv3.json | 40 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 121 insertions(+), 40 deletions(-) create mode 100644 browser/background.js delete mode 100644 browser/manifest.json create mode 100644 browser/manifestv2.json create mode 100644 browser/manifestv3.json (limited to 'browser') 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 . +*/ + +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"] +); diff --git a/browser/manifest.json b/browser/manifest.json deleted file mode 100644 index ea79d12..0000000 --- a/browser/manifest.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "manifest_version": 3, - "name": "Vencord Web", - "description": "Yeee", - "version": "1.0.0", - "author": "Vendicated", - "homepage_url": "https://github.com/Vendicated/Vencord", - - "host_permissions": [ - "*://*.discord.com/*", - "https://raw.githubusercontent.com/*" - ], - - "permissions": ["declarativeNetRequest"], - - "content_scripts": [ - { - "run_at": "document_start", - "matches": ["*://*.discord.com/*"], - "js": ["content.js"] - } - ], - - "web_accessible_resources": [ - { - "resources": ["dist/Vencord.js"], - "matches": ["*://*.discord.com/*"] - } - ], - - "declarative_net_request": { - "rule_resources": [ - { - "id": "modifyResponseHeaders", - "enabled": true, - "path": "modifyResponseHeaders.json" - } - ] - } -} diff --git a/browser/manifestv2.json b/browser/manifestv2.json new file mode 100644 index 0000000..f711512 --- /dev/null +++ b/browser/manifestv2.json @@ -0,0 +1,33 @@ +{ + "manifest_version": 2, + "name": "Vencord Web", + "description": "The Vencord Client Mod for Discord Web.", + "version": "1.0.0", + "author": "Vendicated", + "homepage_url": "https://github.com/Vendicated/Vencord", + "permissions": [ + "webRequest", + "webRequestBlocking", + "*://*.discord.com/*", + "https://raw.githubusercontent.com/*" + ], + "content_scripts": [ + { + "run_at": "document_start", + "matches": [ + "*://*.discord.com/*" + ], + "js": [ + "content.js" + ] + } + ], + "web_accessible_resources": [ + "dist/Vencord.js" + ], + "background": { + "scripts": [ + "background.js" + ] + } +} diff --git a/browser/manifestv3.json b/browser/manifestv3.json new file mode 100644 index 0000000..ea79d12 --- /dev/null +++ b/browser/manifestv3.json @@ -0,0 +1,40 @@ +{ + "manifest_version": 3, + "name": "Vencord Web", + "description": "Yeee", + "version": "1.0.0", + "author": "Vendicated", + "homepage_url": "https://github.com/Vendicated/Vencord", + + "host_permissions": [ + "*://*.discord.com/*", + "https://raw.githubusercontent.com/*" + ], + + "permissions": ["declarativeNetRequest"], + + "content_scripts": [ + { + "run_at": "document_start", + "matches": ["*://*.discord.com/*"], + "js": ["content.js"] + } + ], + + "web_accessible_resources": [ + { + "resources": ["dist/Vencord.js"], + "matches": ["*://*.discord.com/*"] + } + ], + + "declarative_net_request": { + "rule_resources": [ + { + "id": "modifyResponseHeaders", + "enabled": true, + "path": "modifyResponseHeaders.json" + } + ] + } +} -- cgit