Loading security/manager/ssl/nsNSSIOLayer.cpp +19 −2 Original line number Diff line number Diff line Loading @@ -979,10 +979,22 @@ void nsSSLIOLayerHelpers::GlobalCleanup() { MOZ_ASSERT(NS_IsMainThread(), "Not on main thread"); if (gPrivateSSLIOLayerHelpers) { Preferences::RemoveObserver(gPrivateSSLIOLayerHelpers, "security.tls.version.fallback-limit"); #ifdef DEBUG gPrivateSSLIOLayerHelpers->mRegisteredPrefObservers = false; #endif gPrivateSSLIOLayerHelpers = nullptr; } if (gPublicSSLIOLayerHelpers) { Preferences::RemoveObserver(gPublicSSLIOLayerHelpers, "security.tls.version.fallback-limit"); Preferences::RemoveObserver(gPublicSSLIOLayerHelpers, "security.tls.insecure_fallback_hosts"); #ifdef DEBUG gPublicSSLIOLayerHelpers->mRegisteredPrefObservers = false; #endif gPublicSSLIOLayerHelpers = nullptr; } } Loading Loading @@ -1012,8 +1024,10 @@ static int32_t PlaintextRecv(PRFileDesc* fd, void* buf, int32_t amount, } nsSSLIOLayerHelpers::~nsSSLIOLayerHelpers() { Preferences::RemoveObserver(this, "security.tls.version.fallback-limit"); Preferences::RemoveObserver(this, "security.tls.insecure_fallback_hosts"); // Pref observers must have been removed before destruction, since the // destructor may run off the main thread. MOZ_ASSERT(!mRegisteredPrefObservers, "Pref observers should have been removed before destruction"); } template <typename R, R return_value, typename... Args> Loading Loading @@ -1094,6 +1108,9 @@ nsresult nsSSLIOLayerHelpers::Init() { if (NS_IsMainThread()) { initInsecureFallbackSites(); #ifdef DEBUG mRegisteredPrefObservers = true; #endif Preferences::AddStrongObserver(this, "security.tls.version.fallback-limit"); if (isPublic()) { // Changes to the allowlist on the public side will update the pref. Loading security/manager/ssl/nsNSSIOLayer.h +3 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,9 @@ class nsSSLIOLayerHelpers : public nsIObserver { mozilla::Mutex mutex MOZ_UNANNOTATED; uint32_t mTlsFlags; #ifdef DEBUG bool mRegisteredPrefObservers = false; #endif }; namespace { Loading Loading
security/manager/ssl/nsNSSIOLayer.cpp +19 −2 Original line number Diff line number Diff line Loading @@ -979,10 +979,22 @@ void nsSSLIOLayerHelpers::GlobalCleanup() { MOZ_ASSERT(NS_IsMainThread(), "Not on main thread"); if (gPrivateSSLIOLayerHelpers) { Preferences::RemoveObserver(gPrivateSSLIOLayerHelpers, "security.tls.version.fallback-limit"); #ifdef DEBUG gPrivateSSLIOLayerHelpers->mRegisteredPrefObservers = false; #endif gPrivateSSLIOLayerHelpers = nullptr; } if (gPublicSSLIOLayerHelpers) { Preferences::RemoveObserver(gPublicSSLIOLayerHelpers, "security.tls.version.fallback-limit"); Preferences::RemoveObserver(gPublicSSLIOLayerHelpers, "security.tls.insecure_fallback_hosts"); #ifdef DEBUG gPublicSSLIOLayerHelpers->mRegisteredPrefObservers = false; #endif gPublicSSLIOLayerHelpers = nullptr; } } Loading Loading @@ -1012,8 +1024,10 @@ static int32_t PlaintextRecv(PRFileDesc* fd, void* buf, int32_t amount, } nsSSLIOLayerHelpers::~nsSSLIOLayerHelpers() { Preferences::RemoveObserver(this, "security.tls.version.fallback-limit"); Preferences::RemoveObserver(this, "security.tls.insecure_fallback_hosts"); // Pref observers must have been removed before destruction, since the // destructor may run off the main thread. MOZ_ASSERT(!mRegisteredPrefObservers, "Pref observers should have been removed before destruction"); } template <typename R, R return_value, typename... Args> Loading Loading @@ -1094,6 +1108,9 @@ nsresult nsSSLIOLayerHelpers::Init() { if (NS_IsMainThread()) { initInsecureFallbackSites(); #ifdef DEBUG mRegisteredPrefObservers = true; #endif Preferences::AddStrongObserver(this, "security.tls.version.fallback-limit"); if (isPublic()) { // Changes to the allowlist on the public side will update the pref. Loading
security/manager/ssl/nsNSSIOLayer.h +3 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,9 @@ class nsSSLIOLayerHelpers : public nsIObserver { mozilla::Mutex mutex MOZ_UNANNOTATED; uint32_t mTlsFlags; #ifdef DEBUG bool mRegisteredPrefObservers = false; #endif }; namespace { Loading