From 6999476b9eb71880e16b413f27a7df5bf458cd47 Mon Sep 17 00:00:00 2001 From: Danny Qiu Date: Thu, 28 May 2020 10:40:23 -0700 Subject: Update global user agent to conform with spec (#779) The default user agent string places Electron/8.2.3 inside parenthesis, which is defined as a comment according to https://tools.ietf.org/html/rfc7231#section-5.5.3. However, Electron should instead be specified as a product and formatted with whitespace instead of parenthesis. --- src/helpers/userAgent-helpers.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/helpers/userAgent-helpers.js b/src/helpers/userAgent-helpers.js index 15edc1054..7b994c7d4 100644 --- a/src/helpers/userAgent-helpers.js +++ b/src/helpers/userAgent-helpers.js @@ -9,7 +9,6 @@ const ferdiVersion = remote && remote.app ? remote.app.getVersion() : app.getVer function macOS() { const version = macosVersion(); - return `Macintosh; Intel Mac OS X ${version.replace(/\./g, '_')}`; } @@ -20,7 +19,7 @@ function windows() { } function linux() { - return 'X11; Ubuntu; Linux x86_64'; + return 'X11; Linux x86_64'; } export default function userAgent(removeChromeVersion = false) { @@ -34,12 +33,17 @@ export default function userAgent(removeChromeVersion = false) { platformString = linux(); } + let chromeVersion = 'Chrome'; + if (!removeChromeVersion) { + chromeVersion = `Chrome/${process.versions.chrome}`; + } + let applicationString = ''; if (!removeChromeVersion) { - applicationString = ` Ferdi/${ferdiVersion} (Electron ${process.versions.electron})`; + applicationString = ` Ferdi/${ferdiVersion} Electron/${process.versions.electron}`; } - // TODO: Update AppleWebKit and Safari version after electron update - return `Mozilla/5.0 (${platformString}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome${!removeChromeVersion ? `/${process.versions.chrome}` : ''} Safari/537.36${applicationString}`; - // Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) old-airport-include/1.0.0 Chrome Electron/7.1.7 Safari/537.36 + // Chrome is pinned to WebKit 537.36, the latest version before hard forking to Blink. + return `Mozilla/5.0 (${platformString}) AppleWebKit/537.36 (KHTML, like Gecko) ${chromeVersion} Safari/537.36${applicationString}`; + // Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36 Ferdi/5.5.1-nightly.13 Electron/8.2.3 } -- cgit v1.2.3-70-g09d2