Bug 1943761 - Add class alignment to the mozsearch analysis file. r=asuth
[gecko.git] / js / xpconnect / loader / ComponentUtils.sys.mjs
blob3987277ac6e9c923be7f4e3a3b0156c794c6de51
1 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
2  * vim: sw=2 ts=2 sts=2 et filetype=javascript
3  * This Source Code Form is subject to the terms of the Mozilla Public
4  * License, v. 2.0. If a copy of the MPL was not distributed with this
5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 /**
8  * Deprecated utilities for JavaScript components loaded by the JS component
9  * loader.
10  */
12 const nsIFactoryQI = ChromeUtils.generateQI(["nsIFactory"]);
14 export var ComponentUtils = {
15   /**
16    * DEPRECATED!
17    *
18    * Generates a singleton nsIFactory implementation that can be used as
19    * an argument to nsIComponentRegistrar.registerFactory.
20    *
21    * @param {Function} aServiceConstructor
22    *        Constructor function of the component.
23    */
24   generateSingletonFactory(aServiceConstructor) {
25     return {
26       _instance: null,
27       createInstance(aIID) {
28         if (this._instance === null) {
29           this._instance = new aServiceConstructor();
30         }
31         return this._instance.QueryInterface(aIID);
32       },
33       QueryInterface: nsIFactoryQI,
34     };
35   },