commit df5ef0096c5ff4adf8847cf485a2fe06342d1978
parent 51f79ad627ee415533f2cfd22da9898fcecf9c40
Author: Dan Stillman <dstillman@zotero.org>
Date: Thu, 23 Jul 2009 09:25:28 +0000
Detect corrupted login manager database
Diffstat:
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/chrome/content/zotero/xpcom/sync.js b/chrome/content/zotero/xpcom/sync.js
@@ -748,7 +748,20 @@ Zotero.Sync.Server = new function () {
Zotero.debug('Getting Zotero sync password');
var loginManager = Components.classes["@mozilla.org/login-manager;1"]
.getService(Components.interfaces.nsILoginManager);
- var logins = loginManager.findLogins({}, _loginManagerHost, _loginManagerURL, null);
+ try {
+ var logins = loginManager.findLogins({}, _loginManagerHost, _loginManagerURL, null);
+ }
+ catch (e) {
+ Zotero.debug(e);
+ // TODO: localize
+ var msg = "Zotero cannot access your login information, "
+ + "likely due to a corrupted Firefox login manager database."
+ + "\n\n"
+ + "Close Firefox, back up and delete signons.* from your Firefox profile, "
+ + "and re-enter your Zotero login information in the Sync pane of the Zotero preferences.";
+ alert(msg);
+ return '';
+ }
// Find user from returned array of nsILoginInfo objects
for (var i = 0; i < logins.length; i++) {