зеркало из https://github.com/mozilla/gecko-dev.git
Bug 809920 - Create testing/modules for shared testing-only JS modules; r=ted
Includes AppInfo.jsm with code for manipulating XULAppInfo. --HG-- rename : services/healthreport/modules-testing/utils.jsm => testing/modules/AppInfo.jsm
This commit is contained in:
Родитель
02654b49de
Коммит
716d40560b
|
@ -0,0 +1,74 @@
|
|||
/* 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/. */
|
||||
|
||||
"use strict";
|
||||
|
||||
this.EXPORTED_SYMBOLS = [
|
||||
"getAppInfo",
|
||||
"updateAppInfo",
|
||||
];
|
||||
|
||||
|
||||
const {interfaces: Ci, results: Cr, utils: Cu} = Components;
|
||||
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
let APP_INFO = {
|
||||
vendor: "Mozilla",
|
||||
name: "xpcshell",
|
||||
ID: "xpcshell@tests.mozilla.org",
|
||||
version: "1",
|
||||
appBuildID: "20121107",
|
||||
platformVersion: "p-ver",
|
||||
platformBuildID: "20121106",
|
||||
inSafeMode: false,
|
||||
logConsoleErrors: true,
|
||||
OS: "XPCShell",
|
||||
XPCOMABI: "noarch-spidermonkey",
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIXULAppInfo, Ci.nsIXULRuntime]),
|
||||
invalidateCachesOnRestart: function() {},
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Obtain a reference to the current object used to define XULAppInfo.
|
||||
*/
|
||||
this.getAppInfo = function () { return APP_INFO; }
|
||||
|
||||
/**
|
||||
* Update the current application info.
|
||||
*
|
||||
* If the argument is defined, it will be the object used. Else, APP_INFO is
|
||||
* used.
|
||||
*
|
||||
* To change the current XULAppInfo, simply call this function. If there was
|
||||
* a previously registered app info object, it will be unloaded and replaced.
|
||||
*/
|
||||
this.updateAppInfo = function (obj) {
|
||||
obj = obj || APP_INFO;
|
||||
APP_INFO = obj;
|
||||
|
||||
let id = Components.ID("{fbfae60b-64a4-44ef-a911-08ceb70b9f31}");
|
||||
let cid = "@mozilla.org/xre/app-info;1";
|
||||
let registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
|
||||
|
||||
// Unregister an existing factory if one exists.
|
||||
try {
|
||||
let existing = Components.manager.getClassObjectByContractID(cid, Ci.nsIFactory);
|
||||
registrar.unregisterFactory(id, existing);
|
||||
} catch (ex) {}
|
||||
|
||||
let factory = {
|
||||
createInstance: function (outer, iid) {
|
||||
if (outer != null) {
|
||||
throw Cr.NS_ERROR_NO_AGGREGATION;
|
||||
}
|
||||
|
||||
return obj.QueryInterface(iid);
|
||||
},
|
||||
};
|
||||
|
||||
registrar.registerFactory(id, "XULAppInfo", cid, factory);
|
||||
};
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
# 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/.
|
||||
|
||||
DEPTH = @DEPTH@
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
TESTING_JS_MODULES := \
|
||||
AppInfo.jsm \
|
||||
$(NULL)
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
|
@ -324,6 +324,7 @@ tier_platform_dirs += testing/xpcshell
|
|||
tier_platform_dirs += testing/tools/screenshot
|
||||
tier_platform_dirs += testing/peptest
|
||||
tier_platform_dirs += testing/mozbase
|
||||
tier_platform_dirs += testing/modules
|
||||
ifdef MOZ_WEBRTC
|
||||
tier_platform_dirs += media/webrtc/signaling/test
|
||||
tier_platform_dirs += media/mtransport/test
|
||||
|
|
Загрузка…
Ссылка в новой задаче