diff --git a/index.js b/index.js index d4ce9d0e..2fdfac58 100644 --- a/index.js +++ b/index.js @@ -221,30 +221,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 d630db6b..d3749fd6 100644 --- a/menu.js +++ b/menu.js @@ -187,6 +187,14 @@ const mainMenuTemplate = (win) => { setProxy(item, win); }, }, + { + label: "Override useragent", + type: "checkbox", + checked: config.get("options.overrideUserAgent"), + click: (item) => { + config.setMenuOption("options.overrideUserAgent", item.checked); + } + }, { label: "Disable hardware acceleration", type: "checkbox",