Add custom user agent option

This commit is contained in:
hensm
2022-08-07 09:32:44 +01:00
parent 3709df869b
commit 4b7c685660
6 changed files with 84 additions and 39 deletions

View File

@@ -33,6 +33,8 @@ let platform: string;
let chromeUserAgent: string | undefined;
let chromeUserAgentHybrid: string | undefined;
let customUserAgent: string | undefined;
export async function initWhitelist() {
logger.info("init (whitelist)");
@@ -42,6 +44,8 @@ export async function initWhitelist() {
chromeUserAgent = getChromeUserAgent(platform);
chromeUserAgentHybrid = getChromeUserAgent(platform, true);
customUserAgent = await options.get("siteWhitelistCustomUserAgent");
/**
* If a UA string can't be obtained, don't bother continuing
* extension initialization
@@ -55,9 +59,13 @@ export async function initWhitelist() {
await registerSiteWhitelist();
// Re-register when options change
options.addEventListener("changed", ev => {
options.addEventListener("changed", async ev => {
const alteredOpts = ev.detail;
if (alteredOpts.includes("siteWhitelistCustomUserAgent")) {
customUserAgent = await options.get("siteWhitelistCustomUserAgent");
}
if (
alteredOpts.includes("siteWhitelist") ||
alteredOpts.includes("siteWhitelistEnabled")
@@ -92,9 +100,10 @@ async function onWhitelistedBeforeSendHeaders(
for (const header of details.requestHeaders) {
if (header.name === "User-Agent") {
header.value =
host?.value === "www.youtube.com"
customUserAgent ||
(host?.value === "www.youtube.com"
? chromeUserAgentHybrid
: chromeUserAgent;
: chromeUserAgent);
break;
}
}
@@ -126,9 +135,10 @@ function onWhitelistedChildBeforeSendHeaders(
for (const header of details.requestHeaders) {
if (header.name === "User-Agent") {
header.value =
host?.value === "www.youtube.com"
customUserAgent ||
(host?.value === "www.youtube.com"
? chromeUserAgentHybrid
: chromeUserAgent;
: chromeUserAgent);
break;
}
}