]>
git.wh0rd.org - tt-rss.git/blob - lib/dojo/_base/sniff.js.uncompressed.js
1 define("dojo/_base/sniff", ["./kernel", "../has"], function(dojo
, has
){
5 // This module populates the dojo browser version sniffing properties.
11 dojo
.isBrowser
= true,
12 dojo
._name
= "browser";
38 // | if(dojo.isBrowser){ ... }
43 // | if(dojo.isFF > 1){ ... }
48 // | if(dojo.isIE > 6){
55 // | if(dojo.isSafari){ ... }
58 // | if(dojo.isSafari && navigator.userAgent.indexOf("iPhone") != -1){
59 // | // we are iPhone. Note, iPod touch reports "iPod" above and fails this test.
65 // True if the client is a web-browser
67 // isFF: Number | undefined
68 // Version as a Number if client is FireFox. undefined otherwise. Corresponds to
69 // major detected FireFox version (1.5, 2, 3, etc.)
71 // isIE: Number | undefined
72 // Version as a Number if client is MSIE(PC). undefined otherwise. Corresponds to
73 // major detected IE version (6, 7, 8, etc.)
75 // isKhtml: Number | undefined
76 // Version as a Number if client is a KHTML browser. undefined otherwise. Corresponds to major
79 // isWebKit: Number | undefined
80 // Version as a Number if client is a WebKit-derived browser (Konqueror,
81 // Safari, Chrome, etc.). undefined otherwise.
83 // isMozilla: Number | undefined
84 // Version as a Number if client is a Mozilla-based browser (Firefox,
85 // SeaMonkey). undefined otherwise. Corresponds to major detected version.
87 // isOpera: Number | undefined
88 // Version as a Number if client is Opera. undefined otherwise. Corresponds to
89 // major detected version.
91 // isSafari: Number | undefined
92 // Version as a Number if client is Safari or iPhone. undefined otherwise.
94 // isChrome: Number | undefined
95 // Version as a Number if client is Chrome browser. undefined otherwise.
98 // True if the client runs on Mac
101 // True if client is iPhone, iPod, or iPad
103 // isAndroid: Number | undefined
104 // Version as a Number if client is android browser. undefined otherwise.
107 // True if client is Wii
112 // fill in the rendering support information in dojo.render.*
113 if(dua
.indexOf("AdobeAIR") >= 0){ isAIR
= 1; }
114 isKhtml
= (dav
.indexOf("Konqueror") >= 0) ? tv
: 0;
115 isWebKit
= parseFloat(dua
.split("WebKit/")[1]) || undefined;
116 isChrome
= parseFloat(dua
.split("Chrome/")[1]) || undefined;
117 isMac
= dav
.indexOf("Macintosh") >= 0;
118 isIos
= /iPhone|iPod|iPad/.test(dua
);
119 isAndroid
= parseFloat(dua
.split("Android ")[1]) || undefined;
120 isWii
= typeof opera
!= "undefined" && opera
.wiiremote
;
122 // safari detection derived from:
123 // http://developer.apple.com/internet/safari/faq.html#anchor2
124 // http://developer.apple.com/internet/safari/uamatrix.html
125 var index
= Math
.max(dav
.indexOf("WebKit"), dav
.indexOf("Safari"), 0);
126 if(index
&& !isChrome
){
127 // try to grab the explicit Safari version first. If we don't get
128 // one, look for less than 419.3 as the indication that we're on something
130 isSafari
= parseFloat(dav
.split("Version/")[1]);
131 if(!isSafari
|| parseFloat(dav
.substr(index
+ 7)) <= 419.3){
136 if (!has("dojo-webkit")) {
137 if(dua
.indexOf("Opera") >= 0){
139 // see http://dev.opera.com/articles/view/opera-ua-string-changes and http://www.useragentstring.com/pages/Opera/
140 // 9.8 has both styles; <9.8, 9.9 only old style
142 isOpera
= parseFloat(dua
.split("Version/")[1]) || tv
;
146 if(dua
.indexOf("Gecko") >= 0 && !isKhtml
&& !isWebKit
){
147 isMozilla
= isMoz
= tv
;
150 //We really need to get away from this. Consider a sane isGecko approach for the future.
151 isFF
= parseFloat(dua
.split("Firefox/")[1] || dua
.split("Minefield/")[1]) || undefined;
153 if(document
.all
&& !isOpera
){
154 isIE
= parseFloat(dav
.split("MSIE ")[1]) || undefined;
155 //In cases where the page has an HTTP header or META tag with
156 //X-UA-Compatible, then it is in emulation mode.
157 //Make sure isIE reflects the desired version.
158 //document.documentMode of 5 means quirks mode.
159 //Only switch the value if documentMode's major version
160 //is different from isIE's major version.
161 var mode
= document
.documentMode
;
162 if(mode
&& mode
!= 5 && Math
.floor(isIE
) != mode
){
168 isQuirks
= document
.compatMode
== "BackCompat";
170 hasAdd("opera", dojo
.isOpera
= isOpera
);
171 hasAdd("air", dojo
.isAIR
= isAIR
);
172 hasAdd("khtml", dojo
.isKhtml
= isKhtml
);
173 hasAdd("webkit", dojo
.isWebKit
= isWebKit
);
174 hasAdd("chrome", dojo
.isChrome
= isChrome
);
175 hasAdd("mac", dojo
.isMac
= isMac
);
176 hasAdd("safari", dojo
.isSafari
= isSafari
);
177 hasAdd("mozilla", dojo
.isMozilla
= dojo
.isMoz
= isMozilla
);
178 hasAdd("ie", dojo
.isIE
= isIE
);
179 hasAdd("ff", dojo
.isFF
= isFF
);
180 hasAdd("quirks", dojo
.isQuirks
= isQuirks
);
181 hasAdd("ios", dojo
.isIos
= isIos
);
182 hasAdd("android", dojo
.isAndroid
= isAndroid
);
184 dojo
.locale
= dojo
.locale
|| (isIE
? n
.userLanguage
: n
.language
).toLowerCase();