From a089699c8915636ba4f158d77dba9b012bc93208 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 4 Mar 2011 19:02:28 +0300 Subject: build custom layer of Dojo to speed up loading of tt-rss (refs #293) --- lib/dojo/gears.js | 88 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 53 insertions(+), 35 deletions(-) (limited to 'lib/dojo/gears.js') diff --git a/lib/dojo/gears.js b/lib/dojo/gears.js index 4b70c14da..aca6c5a4f 100644 --- a/lib/dojo/gears.js +++ b/lib/dojo/gears.js @@ -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; + } -- cgit v1.2.3