mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-27 04:05:32 +00:00
2df0136940
In FxAccountsComponents.manifest, the previous line registers the component CID, but only for the main process. This means we hit an error while parsing the manifest in the child process, because the CID is not recognized. The fix is simply to not try to use the CID to register the contract in the child process. As for the rest of the changes, since bug 1438688, XPT information is compiled into the Firefox binary, so the interfaces manifest entry is no longer needed. This patch removes instances of this line from manifest files. This makes some manifest files empty, so the patch also removes the now-empty files. Differential Revision: https://phabricator.services.mozilla.com/D8751 --HG-- extra : moz-landing-system : lando
76 lines
2.1 KiB
JavaScript
76 lines
2.1 KiB
JavaScript
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
|
|
|
const kCID = Components.ID("{1f9f7181-e6c5-4f4c-8f71-08005cec8468}");
|
|
const kContract = "@testing/notxpcomtest";
|
|
|
|
function run_test() {
|
|
let registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
|
|
|
|
ok(Ci.ScriptableWithNotXPCOM);
|
|
|
|
let method1Called = false;
|
|
|
|
let testObject = {
|
|
QueryInterface: ChromeUtils.generateQI([Ci.ScriptableOK,
|
|
Ci.ScriptableWithNotXPCOM,
|
|
Ci.ScriptableWithNotXPCOMBase]),
|
|
|
|
method1() {
|
|
method1Called = true;
|
|
},
|
|
|
|
method2() {
|
|
ok(false, "method2 should not have been called!");
|
|
},
|
|
|
|
method3() {
|
|
ok(false, "mehod3 should not have been called!");
|
|
},
|
|
|
|
jsonly: true,
|
|
};
|
|
|
|
let factory = {
|
|
QueryInterface: ChromeUtils.generateQI([Ci.nsIFactory]),
|
|
|
|
createInstance(outer, iid) {
|
|
if (outer) {
|
|
throw Cr.NS_ERROR_NO_AGGREGATION;
|
|
}
|
|
return testObject.QueryInterface(iid);
|
|
},
|
|
};
|
|
|
|
registrar.registerFactory(kCID, null, kContract, factory);
|
|
|
|
let xpcomObject = Cc[kContract].createInstance();
|
|
ok(xpcomObject);
|
|
strictEqual(xpcomObject.jsonly, undefined);
|
|
|
|
xpcomObject.QueryInterface(Ci.ScriptableOK);
|
|
|
|
xpcomObject.method1();
|
|
ok(method1Called);
|
|
|
|
try {
|
|
xpcomObject.QueryInterface(Ci.ScriptableWithNotXPCOM);
|
|
ok(false, "Should not have implemented ScriptableWithNotXPCOM");
|
|
} catch (e) {
|
|
ok(true, "Should not have implemented ScriptableWithNotXPCOM. Correctly threw error: " + e);
|
|
}
|
|
strictEqual(xpcomObject.method2, undefined);
|
|
|
|
try {
|
|
xpcomObject.QueryInterface(Ci.ScriptableWithNotXPCOMBase);
|
|
ok(false, "Should not have implemented ScriptableWithNotXPCOMBase");
|
|
} catch (e) {
|
|
ok(true, "Should not have implemented ScriptableWithNotXPCOMBase. Correctly threw error: " + e);
|
|
}
|
|
strictEqual(xpcomObject.method3, undefined);
|
|
}
|