From 766dd21cb72e7e7d3054bf8f52bfbeef5769129d Mon Sep 17 00:00:00 2001 From: Araxeus <78568641+Araxeus@users.noreply.github.com> Date: Sat, 5 Feb 2022 18:24:37 +0200 Subject: [PATCH] make useragent override optional --- index.js | 45 +++++++++++++++++++++++---------------------- menu.js | 24 ++++++++++++++++-------- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/index.js b/index.js index 8360f147..fd75c133 100644 --- a/index.js +++ b/index.js @@ -192,30 +192,31 @@ function createMainWindow() { } app.once("browser-window-created", (event, win) => { - // User agents are from https://developers.whatismybrowser.com/useragents/explore/ - const originalUserAgent = win.webContents.userAgent; - const userAgents = { - mac: "Mozilla/5.0 (Macintosh; Intel Mac OS X 12.1; rv:95.0) Gecko/20100101 Firefox/95.0", - windows: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0", - linux: "Mozilla/5.0 (Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0", - } - - const updatedUserAgent = - is.macOS() ? userAgents.mac : - is.windows() ? userAgents.windows : - userAgents.linux; - - win.webContents.userAgent = updatedUserAgent; - app.userAgentFallback = updatedUserAgent; - - win.webContents.session.webRequest.onBeforeSendHeaders((details, cb) => { - // this will only happen if login failed, and "retry" was pressed - if (win.webContents.getURL().startsWith("https://accounts.google.com") && details.url.startsWith("https://accounts.google.com")){ - details.requestHeaders["User-Agent"] = originalUserAgent; + if (config.get("options.overrideUserAgent")) { + // User agents are from https://developers.whatismybrowser.com/useragents/explore/ + const originalUserAgent = win.webContents.userAgent; + const userAgents = { + mac: "Mozilla/5.0 (Macintosh; Intel Mac OS X 12.1; rv:95.0) Gecko/20100101 Firefox/95.0", + windows: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0", + linux: "Mozilla/5.0 (Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0", } - cb({ requestHeaders: details.requestHeaders }); - }); + const updatedUserAgent = + is.macOS() ? userAgents.mac : + is.windows() ? userAgents.windows : + userAgents.linux; + + win.webContents.userAgent = updatedUserAgent; + app.userAgentFallback = updatedUserAgent; + + win.webContents.session.webRequest.onBeforeSendHeaders((details, cb) => { + // this will only happen if login failed, and "retry" was pressed + if (win.webContents.getURL().startsWith("https://accounts.google.com") && details.url.startsWith("https://accounts.google.com")) { + details.requestHeaders["User-Agent"] = originalUserAgent; + } + cb({ requestHeaders: details.requestHeaders }); + }); + } setupSongInfo(win); loadPlugins(win); diff --git a/menu.js b/menu.js index 0a62249b..9ae0cdb6 100644 --- a/menu.js +++ b/menu.js @@ -166,14 +166,22 @@ const mainMenuTemplate = (win) => { { label: "Advanced options", submenu: [ - { - label: "Proxy", - type: "checkbox", - checked: !!config.get("options.proxy"), - click: (item) => { - setProxy(item, win); - }, - }, + { + label: "Proxy", + type: "checkbox", + checked: !!config.get("options.proxy"), + click: (item) => { + setProxy(item, win); + }, + }, + { + label: "Override useragent", + type: "checkbox", + checked: config.get("options.overrideUserAgent"), + click: (item) => { + config.set("options.overrideUserAgent", item.checked); + } + }, { label: "Disable hardware acceleration", type: "checkbox",