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.
nsNSSModule.cpp has its own copied+modified XPCOM constructors. ialized and if necessary create the nsNSSComponent singleton.
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
EnsureNSSInit
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 lized code does not work (or regressed)
- the EnsureNSSInitia
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.