mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-30 08:12:05 +00:00
64c3f31a1f
Differential Revision: https://phabricator.services.mozilla.com/D219320
37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
|
|
* vim: sw=2 ts=2 sts=2 et filetype=javascript
|
|
* 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/. */
|
|
|
|
/**
|
|
* Deprecated utilities for JavaScript components loaded by the JS component
|
|
* loader.
|
|
*/
|
|
|
|
const nsIFactoryQI = ChromeUtils.generateQI(["nsIFactory"]);
|
|
|
|
export var ComponentUtils = {
|
|
/**
|
|
* DEPRECATED!
|
|
*
|
|
* Generates a singleton nsIFactory implementation that can be used as
|
|
* an argument to nsIComponentRegistrar.registerFactory.
|
|
*
|
|
* @param {Function} aServiceConstructor
|
|
* Constructor function of the component.
|
|
*/
|
|
generateSingletonFactory(aServiceConstructor) {
|
|
return {
|
|
_instance: null,
|
|
createInstance(aIID) {
|
|
if (this._instance === null) {
|
|
this._instance = new aServiceConstructor();
|
|
}
|
|
return this._instance.QueryInterface(aIID);
|
|
},
|
|
QueryInterface: nsIFactoryQI,
|
|
};
|
|
},
|
|
};
|