var Cc = Components.classes; var Ci = Components.interfaces; var Cr = Components.results; var Cu = Components.utils; Cu.import("resource://gre/modules/XPCOMUtils.jsm"); try { // In the context of xpcshell tests, there won't be a default AppInfo Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo); } catch(ex) { // Make sure to provide the right OS so crypto loads the right binaries var OS = "XPCShell"; if (mozinfo.os == "win") OS = "WINNT"; else if (mozinfo.os == "mac") OS = "Darwin"; else OS = "Linux"; var XULAppInfo = { vendor: "Mozilla", name: "XPCShell", ID: "{3e3ba16c-1675-4e88-b9c8-afef81b3d2ef}", version: "1", appBuildID: "20100621", platformVersion: "", platformBuildID: "20100621", inSafeMode: false, logConsoleErrors: true, OS: OS, XPCOMABI: "noarch-spidermonkey", QueryInterface: XPCOMUtils.generateQI([Ci.nsIXULAppInfo, Ci.nsIXULRuntime]) }; var XULAppInfoFactory = { createInstance: function (outer, iid) { if (outer != null) throw Cr.NS_ERROR_NO_AGGREGATION; return XULAppInfo.QueryInterface(iid); } }; var registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar); registrar.registerFactory(Components.ID("{fbfae60b-64a4-44ef-a911-08ceb70b9f31}"), "XULAppInfo", "@mozilla.org/xre/app-info;1", XULAppInfoFactory); } // Register resource alias. Normally done in SyncComponents.manifest. function addResourceAlias() { Cu.import("resource://gre/modules/Services.jsm"); const resProt = Services.io.getProtocolHandler("resource") .QueryInterface(Ci.nsIResProtocolHandler); let uri = Services.io.newURI("resource://gre/modules/services-crypto/", null, null); resProt.setSubstitution("services-crypto", uri); } addResourceAlias(); /** * Print some debug message to the console. All arguments will be printed, * separated by spaces. * * @param [arg0, arg1, arg2, ...] * Any number of arguments to print out * @usage _("Hello World") -> prints "Hello World" * @usage _(1, 2, 3) -> prints "1 2 3" */ var _ = function(some, debug, text, to) { print(Array.slice(arguments).join(" ")); };