d81302f64c
This reverts commit 97b6699afefe373d510dda5589a0754a4b380153. Vencord is dropping support for the firefox extension, so these changes are now obsolete. revert so users can still install the extension manually and enjoy the full experience
33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
/**
|
|
* @template T
|
|
* @param {T[]} arr
|
|
* @param {(v: T) => boolean} predicate
|
|
*/
|
|
function removeFirst(arr, predicate) {
|
|
const idx = arr.findIndex(predicate);
|
|
if (idx !== -1) arr.splice(idx, 1);
|
|
}
|
|
|
|
chrome.webRequest.onHeadersReceived.addListener(
|
|
({ responseHeaders, type, url }) => {
|
|
if (!responseHeaders) return;
|
|
|
|
if (type === "main_frame") {
|
|
// In main frame requests, the CSP needs to be removed to enable fetching of custom css
|
|
// as desired by the user
|
|
removeFirst(responseHeaders, h => h.name.toLowerCase() === "content-security-policy");
|
|
} else if (type === "stylesheet" && url.startsWith("https://raw.githubusercontent.com/")) {
|
|
// Most users will load css from GitHub, but GitHub doesn't set the correct content type,
|
|
// so we fix it here
|
|
removeFirst(responseHeaders, h => h.name.toLowerCase() === "content-type");
|
|
responseHeaders.push({
|
|
name: "Content-Type",
|
|
value: "text/css"
|
|
});
|
|
}
|
|
return { responseHeaders };
|
|
},
|
|
{ urls: ["https://raw.githubusercontent.com/*", "*://*.discord.com/*"], types: ["main_frame", "stylesheet"] },
|
|
["blocking", "responseHeaders"]
|
|
);
|