UNPKG

1.7 kBJavaScriptView Raw
1define(["./_base/lang", "./sniff"], function(lang, has){
2
3// module:
4// dojo/gears
5
6var gears = {
7 // summary:
8 // TODOC
9};
10lang.setObject("dojo.gears", gears);
11
12gears._gearsObject = function(){
13 // summary:
14 // factory method to get a Google Gears plugin instance to
15 // expose in the browser runtime environment, if present
16 var factory;
17
18 var gearsObj = lang.getObject("google.gears");
19 if(gearsObj){ return gearsObj; } // already defined elsewhere
20
21 if(typeof GearsFactory != "undefined"){ // Firefox
22 factory = new GearsFactory();
23 }else{
24 if(has("ie")){
25 // IE
26 try{
27 factory = new ActiveXObject("Gears.Factory");
28 }catch(e){
29 // ok to squelch; there's no gears factory. move on.
30 }
31 }else if(navigator.mimeTypes["application/x-googlegears"]){
32 // Safari?
33 factory = document.createElement("object");
34 factory.setAttribute("type", "application/x-googlegears");
35 factory.setAttribute("width", 0);
36 factory.setAttribute("height", 0);
37 factory.style.display = "none";
38 document.documentElement.appendChild(factory);
39 }
40 }
41
42 // still nothing?
43 if(!factory){ return null; }
44
45 // define the global objects now; don't overwrite them though if they
46 // were somehow set internally by the Gears plugin, which is on their
47 // dev roadmap for the future
48 lang.setObject("google.gears.factory", factory);
49 return lang.getObject("google.gears");
50};
51
52
53// see if we have Google Gears installed, and if
54// so, make it available in the runtime environment
55// and in the Google standard 'google.gears' global object
56gears.available = (!!gears._gearsObject())||0;
57/*=====
58 gears.available = {
59 // summary:
60 // True if client is using Google Gears
61 };
62 =====*/
63
64return gears;
65});