From ebdf0873f7527cd2f49fbb600a564c53511b83b1 Mon Sep 17 00:00:00 2001 From: hensm Date: Fri, 4 Sep 2020 19:26:38 +0100 Subject: [PATCH] Use hybrid user agent string only on YouTube --- ext/src/background/background.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/ext/src/background/background.ts b/ext/src/background/background.ts index 893ef6b..ada1fa1 100755 --- a/ext/src/background/background.ts +++ b/ext/src/background/background.ts @@ -441,8 +441,10 @@ async function initWhitelist () { const originUrlCache: string[] = []; - const chromeUserAgent = getChromeUserAgent( - (await browser.runtime.getPlatformInfo()).os, true); + + // TODO: Allow hybrid UA to be configurable + const platform = (await browser.runtime.getPlatformInfo()).os; + const chromeUserAgent = getChromeUserAgent(platform); /** * Web apps usually only load the sender library and @@ -466,7 +468,9 @@ async function initWhitelist () { for (const header of details.requestHeaders) { if (header.name === "User-Agent") { - header.value = chromeUserAgent; + header.value = host?.value === "www.youtube.com" + ? getChromeUserAgent(platform, true) + : chromeUserAgent; break; } } @@ -491,9 +495,14 @@ async function initWhitelist () { for (const ancestor of details.frameAncestors) { if (originUrlCache.includes(ancestor.url)) { + const host = details.requestHeaders.find( + header => header.name === "Host"); + for (const header of details.requestHeaders) { if (header.name === "User-Agent") { - header.value = chromeUserAgent; + header.value = host?.value === "www.youtube.com" + ? getChromeUserAgent(platform, true) + : chromeUserAgent; break; } }