diff -r 000000000000 -r 6474c204b198 toolkit/components/startup/tests/unit/head_startup.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolkit/components/startup/tests/unit/head_startup.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,57 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +const XULRUNTIME_CONTRACTID = "@mozilla.org/xre/runtime;1"; +const XULRUNTIME_CID = Components.ID("7685dac8-3637-4660-a544-928c5ec0e714}"); + +Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); + +let gAppInfo = null; + +function createAppInfo(id, name, version, platformVersion) { + gAppInfo = { + // nsIXULAppInfo + vendor: "Mozilla", + name: name, + ID: id, + version: version, + appBuildID: "2007010101", + platformVersion: platformVersion ? platformVersion : "1.0", + platformBuildID: "2007010101", + + // nsIXULRuntime + inSafeMode: false, + logConsoleErrors: true, + OS: "XPCShell", + replacedLockTime: 0, + XPCOMABI: "noarch-spidermonkey", + invalidateCachesOnRestart: function invalidateCachesOnRestart() { + // Do nothing + }, + + // nsICrashReporter + annotations: { + }, + + annotateCrashReport: function(key, data) { + this.annotations[key] = data; + }, + + QueryInterface: XPCOMUtils.generateQI([Ci.nsIXULAppInfo, + Ci.nsIXULRuntime, + Ci.nsICrashReporter, + Ci.nsISupports]) + }; + + let XULAppInfoFactory = { + createInstance: function (outer, iid) { + if (outer != null) + throw Components.results.NS_ERROR_NO_AGGREGATION; + return gAppInfo.QueryInterface(iid); + } + }; + let registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar); + registrar.registerFactory(XULRUNTIME_CID, "XULRuntime", + XULRUNTIME_CONTRACTID, XULAppInfoFactory); + +}