gecko-dev/toolkit/components/startup/tests/unit/head_startup.js
Ian Moody 011b59d595 Bug 1536556 - Replace raw thrown Cr.ERRORs with Components.Exception. r=mossop,remote-protocol-reviewers,marionette-reviewers,whimboo,necko-reviewers,geckoview-reviewers,valentin,agi
Raw Cr.ERROR don't get stack information, same as throwing JS literals instead
of `new Error()`s.

This was done automatically with a new eslint rule that will be introduced in
the next commit.  One instance of a raw Cr.ERROR was not replaced since it is
used in a test that specifically checks the preservation of raw Cr values in
XPCJS.  The rule will be disabled for that instance.

Differential Revision: https://phabricator.services.mozilla.com/D28073
2020-05-05 17:41:36 +00:00

41 lines
1 KiB
JavaScript

/* 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}");
var { XPCOMUtils } = ChromeUtils.import(
"resource://gre/modules/XPCOMUtils.jsm"
);
var gAppInfo = null;
function createAppInfo(ID, name, version, platformVersion = "1.0") {
let tmp = {};
ChromeUtils.import("resource://testing-common/AppInfo.jsm", tmp);
gAppInfo = tmp.newAppInfo({
ID,
name,
version,
platformVersion,
crashReporter: true,
replacedLockTime: 0,
});
let XULAppInfoFactory = {
createInstance(outer, iid) {
if (outer != null) {
throw Components.Exception("", Cr.NS_ERROR_NO_AGGREGATION);
}
return gAppInfo.QueryInterface(iid);
},
};
let registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
registrar.registerFactory(
XULRUNTIME_CID,
"XULRuntime",
XULRUNTIME_CONTRACTID,
XULAppInfoFactory
);
}