]> git.wh0rd.org - tt-rss.git/blobdiff - lib/dojo/gears.js
build custom layer of Dojo to speed up loading of tt-rss (refs #293)
[tt-rss.git] / lib / dojo / gears.js
index 4b70c14da4bbb0d144287d8853bef5b67ecd39ed..aca6c5a4fd9ae21adfb96cc14bdeb926bbd171a8 100644 (file)
@@ -5,41 +5,59 @@
 */
 
 
-if(!dojo._hasResource["dojo.gears"]){
-dojo._hasResource["dojo.gears"]=true;
+if(!dojo._hasResource["dojo.gears"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojo.gears"] = true;
 dojo.provide("dojo.gears");
-dojo.gears._gearsObject=function(){
-var _1;
-var _2;
-var _3=dojo.getObject("google.gears");
-if(_3){
-return _3;
-}
-if(typeof GearsFactory!="undefined"){
-_1=new GearsFactory();
-}else{
-if(dojo.isIE){
-try{
-_1=new ActiveXObject("Gears.Factory");
-}
-catch(e){
-}
-}else{
-if(navigator.mimeTypes["application/x-googlegears"]){
-_1=document.createElement("object");
-_1.setAttribute("type","application/x-googlegears");
-_1.setAttribute("width",0);
-_1.setAttribute("height",0);
-_1.style.display="none";
-document.documentElement.appendChild(_1);
-}
-}
-}
-if(!_1){
-return null;
-}
-dojo.setObject("google.gears.factory",_1);
-return dojo.getObject("google.gears");
+
+dojo.gears._gearsObject = function(){
+       // summary: 
+       //              factory method to get a Google Gears plugin instance to
+       //              expose in the browser runtime environment, if present
+       var factory;
+       var results;
+       
+       var gearsObj = dojo.getObject("google.gears");
+       if(gearsObj){ return gearsObj; } // already defined elsewhere
+       
+       if(typeof GearsFactory != "undefined"){ // Firefox
+               factory = new GearsFactory();
+       }else{
+               if(dojo.isIE){
+                       // IE
+                       try{
+                               factory = new ActiveXObject("Gears.Factory");
+                       }catch(e){
+                               // ok to squelch; there's no gears factory.  move on.
+                       }
+               }else if(navigator.mimeTypes["application/x-googlegears"]){
+                       // Safari?
+                       factory = document.createElement("object");
+                       factory.setAttribute("type", "application/x-googlegears");
+                       factory.setAttribute("width", 0);
+                       factory.setAttribute("height", 0);
+                       factory.style.display = "none";
+                       document.documentElement.appendChild(factory);
+               }
+       }
+
+       // still nothing?
+       if(!factory){ return null; }
+       
+       // define the global objects now; don't overwrite them though if they
+       // were somehow set internally by the Gears plugin, which is on their
+       // dev roadmap for the future
+       dojo.setObject("google.gears.factory", factory);
+       return dojo.getObject("google.gears");
 };
-dojo.gears.available=(!!dojo.gears._gearsObject())||0;
+
+/*=====
+dojo.gears.available = {
+       // summary: True if client is using Google Gears
+};
+=====*/
+// see if we have Google Gears installed, and if
+// so, make it available in the runtime environment
+// and in the Google standard 'google.gears' global object
+dojo.gears.available = (!!dojo.gears._gearsObject())||0;
+
 }