Merge pull request #20003 from prlanzarin/u27/fix/ua-invalid-version-number
[2.7] fix: crash due to invalid UA version number in WKWebView (backport)
This commit is contained in:
commit
b98340bd27
@ -1,4 +1,5 @@
|
||||
import Bowser from 'bowser';
|
||||
import logger from '/imports/startup/client/logger';
|
||||
|
||||
const userAgent = window.navigator.userAgent;
|
||||
const BOWSER_RESULTS = Bowser.parse(userAgent);
|
||||
@ -10,7 +11,29 @@ const isIe = BOWSER_RESULTS.browser.name === 'Internet Explorer';
|
||||
const isFirefox = BOWSER_RESULTS.browser.name === 'Firefox';
|
||||
|
||||
const browserName = BOWSER_RESULTS.browser.name;
|
||||
const versionNumber = BOWSER_RESULTS.browser.version;
|
||||
|
||||
const getVersionNumber = () => {
|
||||
if (BOWSER_RESULTS.browser.version) return BOWSER_RESULTS.browser.version;
|
||||
|
||||
// There are some scenarios (e.g.; WKWebView) where Bowser can't detect the
|
||||
// Safari version. In such cases, we can use the WebKit version to determine
|
||||
// it.
|
||||
if (isSafari && BOWSER_RESULTS.engine.version) return BOWSER_RESULTS.engine.version;
|
||||
|
||||
// If the version number is not available, log an warning and return Infinity
|
||||
// so that we do not deny access to the user (even if we're uncertain about
|
||||
// whether it's a supported browser).
|
||||
logger.warn({
|
||||
logCode: 'browserInfo_invalid_version',
|
||||
extraInfo: {
|
||||
userAgent,
|
||||
},
|
||||
}, 'Unable to determine the browser version number');
|
||||
|
||||
return 'Infinity';
|
||||
};
|
||||
|
||||
const versionNumber = getVersionNumber();
|
||||
|
||||
const isValidSafariVersion = Bowser.getParser(userAgent).satisfies({
|
||||
safari: '>12',
|
||||
|
Loading…
Reference in New Issue
Block a user