in authui-container/src/utils/browser.ts [39:84]
export function getBrowserName(userAgent?: string): string {
const ua = (userAgent || getUserAgentString()).toLowerCase();
if (ua.indexOf('opera/') !== -1 ||
ua.indexOf('opr/') !== -1 ||
ua.indexOf('opios/') !== -1) {
return BrowserName.Opera;
} else if (ua.indexOf('iemobile') !== -1) {
// Windows phone IEMobile browser.
return BrowserName.IEMobile;
} else if (ua.indexOf('msie') !== -1 ||
ua.indexOf('trident/') !== -1) {
return BrowserName.IE;
} else if (ua.indexOf('edge/') !== -1) {
return BrowserName.Edge;
} else if (ua.indexOf('firefox/') !== -1) {
return BrowserName.Firefox;
} else if (ua.indexOf('silk/') !== -1) {
return BrowserName.Silk;
} else if (ua.indexOf('blackberry') !== -1) {
// Blackberry browser.
return BrowserName.Blackberry;
} else if (ua.indexOf('webos') !== -1) {
// WebOS default browser.
return BrowserName.Webos;
} else if (ua.indexOf('safari/') !== -1 &&
ua.indexOf('chrome/') === -1 &&
ua.indexOf('crios/') === -1 &&
ua.indexOf('android') === -1) {
return BrowserName.Safari;
} else if ((ua.indexOf('chrome/') !== -1 ||
ua.indexOf('crios/') !== -1) &&
ua.indexOf('edge/') === -1) {
return BrowserName.Chrome;
} else if (ua.indexOf('android') !== -1) {
// Android stock browser.
return BrowserName.Android;
} else {
// Most modern browsers have name/version at end of user agent string.
const re = new RegExp('([a-zA-Z\\d\\.]+)\/[a-zA-Z\\d\\.]*$');
const matches = userAgent.match(re);
if (matches && matches.length === 2) {
return matches[1];
}
}
return BrowserName.Other;
}