From df5ef0096c5ff4adf8847cf485a2fe06342d1978 Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Thu, 23 Jul 2009 09:25:28 +0000 Subject: [PATCH] Detect corrupted login manager database --- chrome/content/zotero/xpcom/sync.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/chrome/content/zotero/xpcom/sync.js b/chrome/content/zotero/xpcom/sync.js index cc97af6c3c..dba1082114 100644 --- 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++) {