This is a regression. The patch for #14716 (moved) (which fixed this originally for TB 4.5) needs to be updated to account for some changes that Mozilla made to the code under toolkit/components/passwordmgr/
Kathy and I are working on a patch.
This bug does not occur when the security.nocertdb pref. is set to false.
(plus the comments)? There seems no point in trying to run the whole init goop in this._storage.initialize() if we are checking the nocertdb pref later anyway and assigning values to this.initializationPromise depending on it. Or maybe a better explanation: Just checking the pref (which we do anyway) to get to know whether the initialization fails due to it or not is enough; there is no need to try to run the init code, too.
You cleaned up some indentations, could you do that with the other
if (!this._storage) throw "No storage to set login saving enabled";
blocks as well?
I get
NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIPK11Token.initPassword] crypto-SDR.js:85:0
at start-up and vaguely remember that the crypto initialization was broken due to security.nocertdb as well but got fixed somehow. I can't seem to find the ticket anymore, though. Is this a different issue?
Can't we just do something like
{{{
if (Services.prefs.getBoolPref("security.nocertdb")) {
this.initializationPromise = Promise.resolve();
this._storage = null;
} else {
this.initializationPromise = this._storage.initialize();
}
}}}
(plus the comments)? There seems no point in trying to run the whole init goop in this._storage.initialize() if we are checking the nocertdb pref later anyway and assigning values to this.initializationPromise depending on it. Or maybe a better explanation: Just checking the pref (which we do anyway) to get to know whether the initialization fails due to it or not is enough; there is no need to try to run the init code, too.
This is a very good idea.
You cleaned up some indentations, could you do that with the other
{{{
if (!this._storage)
throw "No storage to set login saving enabled";
}}}
blocks as well?
Yes, we will fix them.
I get
{{{
NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIPK11Token.initPassword] crypto-SDR.js:85:0
}}}
at start-up and vaguely remember that the crypto initialization was broken due to security.nocertdb as well but got fixed somehow. I can't seem to find the ticket anymore, though. Is this a different issue?
That is caused by this same issue... not calling _storage.initialize() should make this go away.
Thanks for your review and suggestions. We will post a new patch very soon.
This is commit 313e32cf752756d9c64e05058342cdda84d550e7 (tor-browser-38.2.1esr-5.5-2) and commit 85ae5da40c3b969157243e62f8f5b35829577717 (tor-browser-38.2.1esr-5.0-2) now.
Trac: Resolution: N/Ato fixed Status: reopened to closed