Comment 17 for bug 236853

Revision history for this message
In , Kai Engert (kaie) wrote :

nsNSSModule.cpp has its own copied+modified XPCOM constructors.
Those are designed to do the following:
- if the interface requested means we create an instance of
  class nsNSSComponent, then proceed (because that class
  implements the code that is needed to init NSS)
- if the above is not true, then we first jump through function
  EnsureNSSInitialized and if necessary create the nsNSSComponent singleton.

The crashing code is in nsCryptoHash, which uses the correct macro that tries to achieve the latter.

If this bug is because NSS was not initialized, it means either
- the EnsureNSSInitialized code does not work (or regressed)
or
- you have shut NSS. You might have sent out a profile changed notification, but not yet switched to a new profile

The existing PSM code assumes that you'll never use any of PSM services while you are in the middle of a profile switch.