mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 21:05:36 +00:00
Bug 482178 - Clean up services -> lazy services. r=thunder
This commit is contained in:
parent
f81547db69
commit
e7a623aaec
@ -58,23 +58,6 @@ function CryptoSvc() {
|
||||
CryptoSvc.prototype = {
|
||||
_logName: "Crypto",
|
||||
|
||||
__os: null,
|
||||
get _os() {
|
||||
if (!this.__os)
|
||||
this.__os = Cc["@mozilla.org/observer-service;1"]
|
||||
.getService(Ci.nsIObserverService);
|
||||
return this.__os;
|
||||
},
|
||||
|
||||
__crypto: null,
|
||||
get _crypto() {
|
||||
if (!this.__crypto)
|
||||
this.__crypto = Cc["@labs.mozilla.com/Weave/Crypto;1"].
|
||||
createInstance(Ci.IWeaveCrypto);
|
||||
return this.__crypto;
|
||||
},
|
||||
|
||||
|
||||
get defaultAlgorithm() {
|
||||
return Utils.prefs.getCharPref("encryption");
|
||||
},
|
||||
@ -113,7 +96,7 @@ CryptoSvc.prototype = {
|
||||
return; // otherwise we'll send the alg changed event twice
|
||||
}
|
||||
// FIXME: listen to this bad boy somewhere
|
||||
this._os.notifyObservers(null, "weave:encryption:algorithm-changed", "");
|
||||
Svc.Observer.notifyObservers(null, "weave:encryption:algorithm-changed", "");
|
||||
} break;
|
||||
default:
|
||||
this._log.warn("Unknown encryption preference changed - ignoring");
|
||||
@ -149,7 +132,7 @@ CryptoSvc.prototype = {
|
||||
} else {
|
||||
let symkey = identity.bulkKey;
|
||||
let iv = identity.bulkIV;
|
||||
ret = this._crypto.encrypt(data, symkey, iv);
|
||||
ret = Svc.Crypto.encrypt(data, symkey, iv);
|
||||
}
|
||||
|
||||
self.done(ret);
|
||||
@ -167,7 +150,7 @@ CryptoSvc.prototype = {
|
||||
} else {
|
||||
let symkey = identity.bulkKey;
|
||||
let iv = identity.bulkIV;
|
||||
ret = this._crypto.decrypt(data, symkey, iv);
|
||||
ret = Svc.Crypto.decrypt(data, symkey, iv);
|
||||
}
|
||||
|
||||
self.done(ret);
|
||||
@ -184,8 +167,8 @@ CryptoSvc.prototype = {
|
||||
|
||||
this._log.trace("randomKeyGen called. [id=" + identity.realm + "]");
|
||||
|
||||
let symkey = this._crypto.generateRandomKey();
|
||||
let iv = this._crypto.generateRandomIV();
|
||||
let symkey = Svc.Crypto.generateRandomKey();
|
||||
let iv = Svc.Crypto.generateRandomIV();
|
||||
|
||||
identity.bulkKey = symkey;
|
||||
identity.bulkIV = iv;
|
||||
@ -206,12 +189,10 @@ CryptoSvc.prototype = {
|
||||
|
||||
// Generate a blob of random data for salting the passphrase used to
|
||||
// encrypt the private key.
|
||||
let salt = this._crypto.generateRandomBytes(32);
|
||||
let iv = this._crypto.generateRandomIV();
|
||||
let salt = Svc.Crypto.generateRandomBytes(32);
|
||||
let iv = Svc.Crypto.generateRandomIV();
|
||||
|
||||
this._crypto.generateKeypair(identity.password,
|
||||
salt, iv,
|
||||
pubOut, privOut);
|
||||
Svc.Crypto.generateKeypair(identity.password, salt, iv, pubOut, privOut);
|
||||
|
||||
identity.keypairAlg = "RSA";
|
||||
identity.pubkey = pubOut.value;
|
||||
@ -224,7 +205,7 @@ CryptoSvc.prototype = {
|
||||
let self = yield;
|
||||
|
||||
this._log.trace("wrapKey called. [id=" + identity.realm + "]");
|
||||
let ret = this._crypto.wrapSymmetricKey(data, identity.pubkey);
|
||||
let ret = Svc.Crypto.wrapSymmetricKey(data, identity.pubkey);
|
||||
|
||||
self.done(ret);
|
||||
},
|
||||
@ -233,11 +214,8 @@ CryptoSvc.prototype = {
|
||||
let self = yield;
|
||||
|
||||
this._log.trace("upwrapKey called. [id=" + identity.realm + "]");
|
||||
let ret = this._crypto.unwrapSymmetricKey(data,
|
||||
identity.privkey,
|
||||
identity.password,
|
||||
identity.passphraseSalt,
|
||||
identity.privkeyWrapIV);
|
||||
let ret = Svc.Crypto.unwrapSymmetricKey(data, identity.privkey,
|
||||
identity.password, identity.passphraseSalt, identity.privkeyWrapIV);
|
||||
self.done(ret);
|
||||
},
|
||||
|
||||
|
@ -99,12 +99,6 @@ PasswordStore.prototype = {
|
||||
__proto__: Store.prototype,
|
||||
_logName: "PasswordStore",
|
||||
|
||||
get _loginManager() {
|
||||
let loginManager = Utils.getLoginManager();
|
||||
this.__defineGetter__("_loginManager", function() loginManager);
|
||||
return loginManager;
|
||||
},
|
||||
|
||||
_nsLoginInfo: null,
|
||||
_init: function PasswordStore_init() {
|
||||
Store.prototype._init.call(this);
|
||||
@ -140,7 +134,7 @@ PasswordStore.prototype = {
|
||||
|
||||
getAllIDs: function PasswordStore__getAllIDs() {
|
||||
let items = {};
|
||||
let logins = this._loginManager.getAllLogins({});
|
||||
let logins = Svc.Login.getAllLogins({});
|
||||
|
||||
for (let i = 0; i < logins.length; i++) {
|
||||
let metaInfo = logins[i].QueryInterface(Ci.nsILoginMetaInfo);
|
||||
@ -166,7 +160,7 @@ PasswordStore.prototype = {
|
||||
createInstance(Ci.nsIWritablePropertyBag2);
|
||||
prop.setPropertyAsAUTF8String("guid", newID);
|
||||
|
||||
this._loginManager.modifyLogin(this._loginItems[oldID], prop);
|
||||
Svc.Login.modifyLogin(this._loginItems[oldID], prop);
|
||||
},
|
||||
|
||||
itemExists: function PasswordStore__itemExists(id) {
|
||||
@ -195,13 +189,13 @@ PasswordStore.prototype = {
|
||||
|
||||
create: function PasswordStore__create(record) {
|
||||
this._log.debug("Adding login for " + record.hostname);
|
||||
this._loginManager.addLogin(this._nsLoginInfoFromRecord(record));
|
||||
Svc.Login.addLogin(this._nsLoginInfoFromRecord(record));
|
||||
},
|
||||
|
||||
remove: function PasswordStore__remove(record) {
|
||||
this._log.debug("Removing login " + record.id);
|
||||
if (record.id in this._loginItems) {
|
||||
this._loginManager.removeLogin(this._loginItems[record.id]);
|
||||
Svc.Login.removeLogin(this._loginItems[record.id]);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -219,11 +213,11 @@ PasswordStore.prototype = {
|
||||
this._log.trace("Updating " + record.id + " (" + itemId + ")");
|
||||
|
||||
let newinfo = this._nsLoginInfoFromRecord(record);
|
||||
this._loginManager.modifyLogin(login, newinfo);
|
||||
Svc.Login.modifyLogin(login, newinfo);
|
||||
},
|
||||
|
||||
wipe: function PasswordStore_wipe() {
|
||||
this._loginManager.removeAllLogins();
|
||||
Svc.Login.removeAllLogins();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -145,9 +145,7 @@ Resource.prototype = {
|
||||
},
|
||||
|
||||
_createRequest: function Res__createRequest() {
|
||||
let ios = Cc["@mozilla.org/network/io-service;1"].
|
||||
getService(Ci.nsIIOService);
|
||||
this._lastChannel = ios.newChannel(this.spec, null, null).
|
||||
this._lastChannel = Svc.IO.newChannel(this.spec, null, null).
|
||||
QueryInterface(Ci.nsIRequest);
|
||||
// Always validate the cache:
|
||||
let loadFlags = this._lastChannel.loadFlags;
|
||||
@ -268,6 +266,8 @@ function ChannelListener(onComplete, onProgress, logger) {
|
||||
}
|
||||
ChannelListener.prototype = {
|
||||
onStartRequest: function Channel_onStartRequest(channel) {
|
||||
// XXX Bug 482179 Some reason xpconnect makes |channel| only nsIRequest
|
||||
channel.QueryInterface(Ci.nsIHttpChannel);
|
||||
this._log.debug(channel.requestMethod + " request for " +
|
||||
channel.URI.spec);
|
||||
this._data = '';
|
||||
|
@ -125,30 +125,6 @@ WeaveSvc.prototype = {
|
||||
_keyGenEnabled: true,
|
||||
_mostRecentError: null,
|
||||
|
||||
__os: null,
|
||||
get _os() {
|
||||
if (!this.__os)
|
||||
this.__os = Cc["@mozilla.org/observer-service;1"]
|
||||
.getService(Ci.nsIObserverService);
|
||||
return this.__os;
|
||||
},
|
||||
|
||||
__dirSvc: null,
|
||||
get _dirSvc() {
|
||||
if (!this.__dirSvc)
|
||||
this.__dirSvc = Cc["@mozilla.org/file/directory_service;1"].
|
||||
getService(Ci.nsIProperties);
|
||||
return this.__dirSvc;
|
||||
},
|
||||
|
||||
__json: null,
|
||||
get _json() {
|
||||
if (!this.__json)
|
||||
this.__json = Cc["@mozilla.org/dom/json;1"].
|
||||
createInstance(Ci.nsIJSON);
|
||||
return this.__json;
|
||||
},
|
||||
|
||||
// object for caching public and private keys
|
||||
_keyPair: {},
|
||||
|
||||
@ -291,7 +267,7 @@ WeaveSvc.prototype = {
|
||||
}
|
||||
|
||||
Utils.prefs.addObserver("", this, false);
|
||||
this._os.addObserver(this, "quit-application", true);
|
||||
Svc.Observer.addObserver(this, "quit-application", true);
|
||||
FaultTolerance.Service; // initialize FT service
|
||||
|
||||
if (!this.enabled)
|
||||
@ -335,7 +311,7 @@ WeaveSvc.prototype = {
|
||||
dapp.level = Log4Moz.Level[Svc.Prefs.get("log.appender.dump")];
|
||||
root.addAppender(dapp);
|
||||
|
||||
let brief = this._dirSvc.get("ProfD", Ci.nsIFile);
|
||||
let brief = Svc.Directory.get("ProfD", Ci.nsIFile);
|
||||
brief.QueryInterface(Ci.nsILocalFile);
|
||||
brief.append("weave");
|
||||
brief.append("logs");
|
||||
@ -513,7 +489,7 @@ WeaveSvc.prototype = {
|
||||
// Cancel the sync timer now that we're logged out
|
||||
this._checkSync();
|
||||
|
||||
this._os.notifyObservers(null, "weave:service:logout:finish", "");
|
||||
Svc.Observer.notifyObservers(null, "weave:service:logout:finish", "");
|
||||
},
|
||||
|
||||
// stuff we need to to after login, before we can really do
|
||||
@ -863,7 +839,7 @@ WeaveSvc.prototype = {
|
||||
|
||||
// XXX Bug 480448: Delete any snapshots from old code
|
||||
try {
|
||||
let cruft = this._dirSvc.get("ProfD", Ci.nsIFile);
|
||||
let cruft = Svc.Directory.get("ProfD", Ci.nsIFile);
|
||||
cruft.QueryInterface(Ci.nsILocalFile);
|
||||
cruft.append("weave");
|
||||
cruft.append("snapshots");
|
||||
|
@ -64,14 +64,6 @@ Store.prototype = {
|
||||
// set this property in child object's wrap()!
|
||||
_lookup: null,
|
||||
|
||||
__os: null,
|
||||
get _os() {
|
||||
if (!this.__os)
|
||||
this.__os = Cc["@mozilla.org/observer-service;1"]
|
||||
.getService(Ci.nsIObserverService);
|
||||
return this.__os;
|
||||
},
|
||||
|
||||
__json: null,
|
||||
get _json() {
|
||||
if (!this.__json)
|
||||
|
@ -78,9 +78,7 @@ let Utils = {
|
||||
arg = {path: arg};
|
||||
|
||||
let pathParts = arg.path.split("/");
|
||||
let dirSvc = Cc["@mozilla.org/file/directory_service;1"].
|
||||
getService(Ci.nsIProperties);
|
||||
let file = dirSvc.get("ProfD", Ci.nsIFile);
|
||||
let file = Svc.Directory.get("ProfD", Ci.nsIFile);
|
||||
file.QueryInterface(Ci.nsILocalFile);
|
||||
for (let i = 0; i < pathParts.length; i++)
|
||||
file.append(pathParts[i]);
|
||||
@ -89,17 +87,10 @@ let Utils = {
|
||||
return file;
|
||||
},
|
||||
|
||||
getLoginManager: function getLoginManager() {
|
||||
return Cc["@mozilla.org/login-manager;1"].
|
||||
getService(Ci.nsILoginManager);
|
||||
},
|
||||
|
||||
findPassword: function findPassword(realm, username) {
|
||||
// fixme: make a request and get the realm ?
|
||||
let password;
|
||||
let lm = Cc["@mozilla.org/login-manager;1"]
|
||||
.getService(Ci.nsILoginManager);
|
||||
let logins = lm.findLogins({}, 'chrome://weave', null, realm);
|
||||
let logins = Svc.Login.findLogins({}, 'chrome://weave', null, realm);
|
||||
|
||||
for (let i = 0; i < logins.length; i++) {
|
||||
if (logins[i].username == username) {
|
||||
@ -112,8 +103,7 @@ let Utils = {
|
||||
|
||||
setPassword: function setPassword(realm, username, password) {
|
||||
// cleanup any existing passwords
|
||||
let lm = Cc["@mozilla.org/login-manager;1"]
|
||||
.getService(Ci.nsILoginManager);
|
||||
let lm = Svc.Login;
|
||||
let logins = lm.findLogins({}, 'chrome://weave', null, realm);
|
||||
for (let i = 0; i < logins.length; i++)
|
||||
lm.removeLogin(logins[i]);
|
||||
@ -370,10 +360,7 @@ let Utils = {
|
||||
},
|
||||
|
||||
getTmp: function Weave_getTmp(name) {
|
||||
let ds = Cc["@mozilla.org/file/directory_service;1"].
|
||||
getService(Ci.nsIProperties);
|
||||
|
||||
let tmp = ds.get("ProfD", Ci.nsIFile);
|
||||
let tmp = Svc.Directory.get("ProfD", Ci.nsIFile);
|
||||
tmp.QueryInterface(Ci.nsILocalFile);
|
||||
|
||||
tmp.append("weave");
|
||||
@ -509,8 +496,11 @@ Utils.EventListener.prototype = {
|
||||
let Svc = {};
|
||||
Svc.Prefs = new Preferences(PREFS_BRANCH);
|
||||
Utils.lazyInstance(Svc, 'Json', "@mozilla.org/dom/json;1", Ci.nsIJSON);
|
||||
Utils.lazySvc(Svc, 'IO', "@mozilla.org/network/io-service;1", Ci.nsIIOService);
|
||||
Utils.lazySvc(Svc, 'Crypto', "@labs.mozilla.com/Weave/Crypto;1", Ci.IWeaveCrypto);
|
||||
Utils.lazySvc(Svc, 'Directory', "@mozilla.org/file/directory_service;1", Ci.nsIProperties);
|
||||
Utils.lazySvc(Svc, 'IO', "@mozilla.org/network/io-service;1", Ci.nsIIOService);
|
||||
Utils.lazySvc(Svc, 'Login', "@mozilla.org/login-manager;1", Ci.nsILoginManager);
|
||||
Utils.lazySvc(Svc, 'Memory', "@mozilla.org/xpcom/memory-service;1", Ci.nsIMemory);
|
||||
Utils.lazySvc(Svc, 'Observer', "@mozilla.org/observer-service;1", Ci.nsIObserverService);
|
||||
Utils.lazySvc(Svc, 'Version',
|
||||
"@mozilla.org/xpcom/version-comparator;1", Ci.nsIVersionComparator);
|
||||
|
@ -122,8 +122,7 @@ let Wrap = {
|
||||
if (!ret)
|
||||
throw "Could not acquire lock";
|
||||
|
||||
this._os.notifyObservers(null,
|
||||
this._osPrefix + "local-lock:acquired", "");
|
||||
Svc.Observer.notifyObservers(null, this._osPrefix + "local-lock:acquired", "");
|
||||
|
||||
try {
|
||||
args = savedArgs.concat(args);
|
||||
@ -135,8 +134,7 @@ let Wrap = {
|
||||
|
||||
} finally {
|
||||
this.unlock();
|
||||
this._os.notifyObservers(null,
|
||||
this._osPrefix + "local-lock:released", "");
|
||||
Svc.Observer.notifyObservers(null, this._osPrefix + "local-lock:released", "");
|
||||
}
|
||||
|
||||
self.done(ret);
|
||||
|
@ -24,9 +24,9 @@ function FakeLoginManager(fakeLogins) {
|
||||
|
||||
let self = this;
|
||||
|
||||
Utils.getLoginManager = function fake_getLoginManager() {
|
||||
// Return a fake nsILoginManager object.
|
||||
return {
|
||||
// Use a fake nsILoginManager object.
|
||||
delete Svc.Login;
|
||||
Svc.Login = {
|
||||
removeAllLogins: function() { self.fakeLogins = []; },
|
||||
getAllLogins: function() { return self.fakeLogins; },
|
||||
addLogin: function(login) {
|
||||
@ -34,6 +34,5 @@ function FakeLoginManager(fakeLogins) {
|
||||
"with hostname '" + login.hostname + "'.");
|
||||
self.fakeLogins.push(login);
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user