/autobahn/useragent.js
http://github.com/tavendo/AutobahnJS · JavaScript · 105 lines · 82 code · 12 blank · 11 comment · 46 complexity · 9cb8c35cf095af165565f9f6b49d7631 MD5 · raw file
- ab._UA_FIREFOX = new RegExp(".*Firefox/([0-9+]*).*")
- ab._UA_CHROME = new RegExp(".*Chrome/([0-9+]*).*")
- ab._UA_CHROMEFRAME = new RegExp(".*chromeframe/([0-9]*).*")
- ab._UA_WEBKIT = new RegExp(".*AppleWebKit/([0-9+\.]*)\w*.*")
- ab._UA_WEBOS = new RegExp(".*webOS/([0-9+\.]*)\w*.*")
- ab._matchRegex = function(s, r) {
- var m = r.exec(s)
- if (m) return m[1]
- return m
- };
- ab.lookupWsSupport = function() {
- var ua = navigator.userAgent;
- // Internet Explorer
- if (ua.indexOf("MSIE") > -1) {
- if (ua.indexOf("MSIE 10") > -1)
- return [true,true,true]
- if (ua.indexOf("chromeframe") > -1) {
- var v = parseInt(ab._matchRegex(ua, ab._UA_CHROMEFRAME))
- if (v >= 14)
- return [true,false,true]
- return [false,false,false]
- }
- if (ua.indexOf("MSIE 8") > -1 || ua.indexOf("MSIE 9") > -1)
- return [true,true,true]
- return [false,false,false]
- }
- // Firefox
- else if (ua.indexOf("Firefox") > -1) {
- var v = parseInt(ab._matchRegex(ua, ab._UA_FIREFOX))
- if (v) {
- if (v >= 7)
- return [true,false,true]
- if (v >= 3)
- return [true,true,true]
- return [false,false,true]
- }
- return [false,false,true]
- }
- // Safari
- else if (ua.indexOf("Safari") > -1 && ua.indexOf("Chrome") == -1) {
- var v = ab._matchRegex(ua, ab._UA_WEBKIT)
- if (v) {
- if (ua.indexOf("Windows") > -1 && v == "534+") // Not sure about this test ~RMH
- return [true,false,true]
- if (ua.indexOf("Macintosh") > -1) {
- v = v.replace("+","").split(".")
- if ((parseInt(v[0]) == 535 && parseInt(v[1]) >= 24) || parseInt(v[0]) > 535)
- return [true,false,true]
- }
- if (ua.indexOf("webOS") > -1) {
- v = ab._matchRegex(ua, ab._UA_WEBOS).split(".")
- if (parseInt(v[0]) == 2)
- return [false,true,true]
- return [false,false,false]
- }
- return [true,true,true]
- }
- return [false,false,false]
- }
- // Chrome
- else if (ua.indexOf("Chrome") > -1) {
- var v = parseInt(ab._matchRegex(ua, ab._UA_CHROME))
- if (v) {
- if (v >= 14)
- return [true,false,true]
- if (v >= 4)
- return [true,true,true]
- return [false,false,true]
- }
- return [false,false,false]
- }
- // Android
- else if (ua.indexOf("Android") > -1) {
- // Firefox Mobile
- if (ua.indexOf("Firefox") > -1)
- return [true,false,true]
- // Chrome for Android
- else if (ua.indexOf("CrMo") > -1)
- return [true,false,true]
- // Opera Mobile
- else if (ua.indexOf("Opera") > -1)
- return [false,false,true]
- // Android Browser
- else if (ua.indexOf("CrMo") > -1)
- return [true,true,true]
- return [false,false,false]
- }
- // iOS
- else if (ua.indexOf("iPhone") > -1 || ua.indexOf("iPad") > -1 || ua.indexOf("iPod") > -1)
- return [false,false,true]
- // Unidentified
- return [false,false,false]
- };