Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/components/xulappinfo.js
diff options
context:
space:
mode:
Diffstat (limited to 'components/xulappinfo.js')
-rw-r--r--components/xulappinfo.js106
1 files changed, 106 insertions, 0 deletions
diff --git a/components/xulappinfo.js b/components/xulappinfo.js
new file mode 100644
index 0000000..11a4fba
--- /dev/null
+++ b/components/xulappinfo.js
@@ -0,0 +1,106 @@
+/* FIXME: The values in the block below should be supplied by the activity. */
+const APPLICATION_ID = '{ab9fc198-f515-477b-843f-8fb52810a3e0}'
+const APPLICATION_VENDOR = 'Sugar'
+const APPLICATION_NAME = 'Browser Activity'
+const APPLICATION_VERSION = '0.4.3'
+const APPLICATION_BUILD_ID = '2008072400'
+
+const PLATFORM_VERSION = '1.9'
+const PLATFORM_BUILD_ID = '2008072400'
+const OS = 'linux-gnu'
+const XPCOMABI = 'x86_64' + '-gcc3'
+
+
+const XULAPPINFO_CONTRACTID = "@mozilla.org/xre/app-info;1";
+const XULAPPINFO_CID = Components.ID("{18eec982-b411-4f07-9fca-79d33ee6e4b5}");
+
+const nsIXULAppInfo = Components.interfaces.nsIXULAppInfo;
+const nsIXULRuntime = Components.interfaces.nsIXULRuntime;
+const nsIComponentRegistrar = Components.interfaces.nsIComponentRegistrar;
+const nsIFactory = Components.interfaces.nsIFactory;
+
+function XULAppInfoService()
+{}
+
+XULAppInfoService.prototype.ID = APPLICATION_ID
+XULAppInfoService.prototype.vendor = APPLICATION_VENDOR
+XULAppInfoService.prototype.name = APPLICATION_NAME
+XULAppInfoService.prototype.version = APPLICATION_VERSION
+XULAppInfoService.prototype.appBuildID = APPLICATION_BUILD_ID
+XULAppInfoService.prototype.platformVersion = PLATFORM_VERSION
+XULAppInfoService.prototype.platformBuildID = PLATFORM_BUILD_ID
+XULAppInfoService.prototype.inSafeMode = false
+XULAppInfoService.prototype.logConsoleErrors = true
+XULAppInfoService.prototype.OS = OS
+XULAppInfoService.prototype.XPCOMABI = XPCOMABI
+
+XULAppInfoService.prototype.QueryInterface =
+function appinfo_QueryInterface(iid)
+{
+ if (!iid.equals(nsIXULAppInfo) &&
+ !iid.equals(nsIXULRuntime) &&
+ !iid.equals(nsISupports))
+ {
+ throw Components.results.NS_ERROR_NO_INTERFACE;
+ }
+
+ return this;
+}
+
+var XULAppInfoFactory = new Object();
+
+XULAppInfoFactory.createInstance =
+function(outer, iid)
+{
+ if (outer != null)
+ throw Components.results.NS_ERROR_NO_AGGREGATION;
+
+ if (!iid.equals(nsIXULAppInfo) && !iid.equals(nsISupports))
+ throw Components.results.NS_ERROR_INVALID_ARG;
+
+ return new XULAppInfoService();
+}
+
+
+var XULAppInfoModule = new Object();
+
+XULAppInfoModule.registerSelf =
+function mod_registerSelf(compMgr, fileSpec, location, type)
+{
+ compMgr = compMgr.QueryInterface(nsIComponentRegistrar);
+
+ compMgr.registerFactoryLocation(XULAPPINFO_CID,
+ "XUL AppInfo service",
+ XULAPPINFO_CONTRACTID,
+ fileSpec, location, type);
+}
+
+XULAppInfoModule.unregisterSelf =
+function mod_unregisterSelf(compMgr, fileSpec, location)
+{
+}
+
+XULAppInfoModule.getClassObject =
+function mod_getClassObject(compMgr, cid, iid)
+{
+ if (cid.equals(XULAPPINFO_CID))
+ return XULAppInfoFactory;
+
+ if (!iid.equals(nsIFactory))
+ throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
+
+ throw Components.results.NS_ERROR_NO_INTERFACE;
+}
+
+XULAppInfoModule.canUnload =
+function mod_canUnload(compMgr)
+{
+ return true;
+}
+
+/* entrypoint */
+function NSGetModule(compMgr, fileSpec)
+{
+ return XULAppInfoModule;
+}
+