mirror of https://github.com/jitsi/jitsi-meet
parent
cd6928d770
commit
ae759fab5b
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,152 @@ |
|||||||
|
|
||||||
|
var currentBrowser; |
||||||
|
|
||||||
|
var browserVersion; |
||||||
|
|
||||||
|
var RTCBrowserType = { |
||||||
|
|
||||||
|
RTC_BROWSER_CHROME: "rtc_browser.chrome", |
||||||
|
|
||||||
|
RTC_BROWSER_OPERA: "rtc_browser.opera", |
||||||
|
|
||||||
|
RTC_BROWSER_FIREFOX: "rtc_browser.firefox", |
||||||
|
|
||||||
|
RTC_BROWSER_IEXPLORER: "rtc_browser.iexplorer", |
||||||
|
|
||||||
|
RTC_BROWSER_SAFARI: "rtc_browser.safari", |
||||||
|
|
||||||
|
getBrowserType: function () { |
||||||
|
return currentBrowser; |
||||||
|
}, |
||||||
|
|
||||||
|
isChrome: function () { |
||||||
|
return currentBrowser === RTCBrowserType.RTC_BROWSER_CHROME; |
||||||
|
}, |
||||||
|
|
||||||
|
isOpera: function () { |
||||||
|
return currentBrowser === RTCBrowserType.RTC_BROWSER_OPERA; |
||||||
|
}, |
||||||
|
isFirefox: function () { |
||||||
|
return currentBrowser === RTCBrowserType.RTC_BROWSER_FIREFOX; |
||||||
|
}, |
||||||
|
|
||||||
|
isIExplorer: function () { |
||||||
|
return currentBrowser === RTCBrowserType.RTC_BROWSER_IEXPLORER; |
||||||
|
}, |
||||||
|
|
||||||
|
isSafari: function () { |
||||||
|
return currentBrowser === RTCBrowserType.RTC_BROWSER_SAFARI; |
||||||
|
}, |
||||||
|
isTemasysPluginUsed: function () { |
||||||
|
return RTCBrowserType.isIExplorer() || RTCBrowserType.isSafari(); |
||||||
|
}, |
||||||
|
getFirefoxVersion: function () { |
||||||
|
return RTCBrowserType.isFirefox() ? browserVersion : null; |
||||||
|
}, |
||||||
|
|
||||||
|
getChromeVersion: function () { |
||||||
|
return RTCBrowserType.isChrome() ? browserVersion : null; |
||||||
|
} |
||||||
|
|
||||||
|
// Add version getters for other browsers when needed
|
||||||
|
}; |
||||||
|
|
||||||
|
// detectOpera() must be called before detectChrome() !!!
|
||||||
|
// otherwise Opera wil be detected as Chrome
|
||||||
|
function detectChrome() { |
||||||
|
if (navigator.webkitGetUserMedia) { |
||||||
|
currentBrowser = RTCBrowserType.RTC_BROWSER_CHROME; |
||||||
|
var userAgent = navigator.userAgent.toLowerCase(); |
||||||
|
// We can assume that user agent is chrome, because it's
|
||||||
|
// enforced when 'ext' streaming method is set
|
||||||
|
var ver = parseInt(userAgent.match(/chrome\/(\d+)\./)[1], 10); |
||||||
|
console.log("This appears to be Chrome, ver: " + ver); |
||||||
|
return ver; |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
function detectOpera() { |
||||||
|
var userAgent = navigator.userAgent; |
||||||
|
if (userAgent.match(/Opera|OPR/)) { |
||||||
|
currentBrowser = RTCBrowserType.RTC_BROWSER_OPERA; |
||||||
|
var version = userAgent.match(/(Opera|OPR) ?\/?(\d+)\.?/)[2]; |
||||||
|
console.info("This appears to be Opera, ver: " + version); |
||||||
|
return version; |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
function detectFirefox() { |
||||||
|
if (navigator.mozGetUserMedia) { |
||||||
|
currentBrowser = RTCBrowserType.RTC_BROWSER_FIREFOX; |
||||||
|
var version = parseInt( |
||||||
|
navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1], 10); |
||||||
|
console.log('This appears to be Firefox, ver: ' + version); |
||||||
|
return version; |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
function detectSafari() { |
||||||
|
if ((/^((?!chrome).)*safari/i.test(navigator.userAgent))) { |
||||||
|
currentBrowser = RTCBrowserType.RTC_BROWSER_SAFARI; |
||||||
|
console.info("This appears to be Safari"); |
||||||
|
// FIXME detect Safari version when needed
|
||||||
|
return 1; |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
function detectIE() { |
||||||
|
var version; |
||||||
|
var ua = window.navigator.userAgent; |
||||||
|
|
||||||
|
var msie = ua.indexOf('MSIE '); |
||||||
|
if (msie > 0) { |
||||||
|
// IE 10 or older => return version number
|
||||||
|
version = parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10); |
||||||
|
} |
||||||
|
|
||||||
|
var trident = ua.indexOf('Trident/'); |
||||||
|
if (!version && trident > 0) { |
||||||
|
// IE 11 => return version number
|
||||||
|
var rv = ua.indexOf('rv:'); |
||||||
|
version = parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10); |
||||||
|
} |
||||||
|
|
||||||
|
var edge = ua.indexOf('Edge/'); |
||||||
|
if (!version && edge > 0) { |
||||||
|
// IE 12 => return version number
|
||||||
|
version = parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10); |
||||||
|
} |
||||||
|
|
||||||
|
if (version) { |
||||||
|
currentBrowser = RTCBrowserType.RTC_BROWSER_IEXPLORER; |
||||||
|
console.info("This appears to be IExplorer, ver: " + version); |
||||||
|
} |
||||||
|
return version; |
||||||
|
} |
||||||
|
|
||||||
|
function detectBrowser() { |
||||||
|
var version; |
||||||
|
var detectors = [ |
||||||
|
detectOpera, |
||||||
|
detectChrome, |
||||||
|
detectFirefox, |
||||||
|
detectIE, |
||||||
|
detectSafari |
||||||
|
]; |
||||||
|
// Try all browser detectors
|
||||||
|
for (var i = 0; i < detectors.length; i++) { |
||||||
|
version = detectors[i](); |
||||||
|
if (version) |
||||||
|
return version; |
||||||
|
} |
||||||
|
console.error("Failed to detect browser type"); |
||||||
|
return undefined; |
||||||
|
} |
||||||
|
|
||||||
|
browserVersion = detectBrowser(); |
||||||
|
|
||||||
|
module.exports = RTCBrowserType; |
||||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +0,0 @@ |
|||||||
var RTCBrowserType = { |
|
||||||
RTC_BROWSER_CHROME: "rtc_browser.chrome", |
|
||||||
|
|
||||||
RTC_BROWSER_FIREFOX: "rtc_browser.firefox" |
|
||||||
}; |
|
||||||
|
|
||||||
module.exports = RTCBrowserType; |
|
||||||
Loading…
Reference in new issue