tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 4ce29761adda6582db81c378fae5a72efea38c5b
parent b3aaa061927951f2fb223f0c2a2f335c65a73db2
Author: pstanciu <pstanciu@mozilla.com>
Date:   Tue,  9 Dec 2025 22:07:55 +0200

Revert "Bug 2004872: Clean up DNS code r=necko-reviewers,valentin" for causin lint failures

This reverts commit 06a3e97780fc8c39466ef927857f8b3342e0a118.

Diffstat:
Mnetwerk/dns/nsDNSService2.cpp | 17++++-------------
Mnetwerk/dns/nsDNSService2.h | 20+++++++++-----------
2 files changed, 13 insertions(+), 24 deletions(-)

diff --git a/netwerk/dns/nsDNSService2.cpp b/netwerk/dns/nsDNSService2.cpp @@ -663,8 +663,6 @@ NS_IMPL_ISUPPORTS(DNSServiceWrapper, nsIDNSService, nsPIDNSService) already_AddRefed<nsIDNSService> DNSServiceWrapper::GetSingleton() { if (!gDNSServiceWrapper) { gDNSServiceWrapper = new DNSServiceWrapper(); - // Not strictly needed, but simple and avoids bypassing lock-checking - MutexAutoLock lock(gDNSServiceWrapper->mLock); gDNSServiceWrapper->mDNSServiceInUse = ChildDNSService::GetSingleton(); if (gDNSServiceWrapper->mDNSServiceInUse) { ClearOnShutdown(&gDNSServiceWrapper); @@ -715,7 +713,6 @@ NS_IMPL_ISUPPORTS_INHERITED(nsDNSService, DNSServiceBase, nsIDNSService, static StaticRefPtr<nsDNSService> gDNSService; static Atomic<bool> gInited(false); -// Note: be careful of races! Called from multiple threads already_AddRefed<nsIDNSService> GetOrInitDNSService() { if (gInited) { return nsDNSService::GetXPCOMSingleton(); @@ -811,7 +808,6 @@ void nsDNSService::ReadPrefs(const char* name) { } } if (!name || !strcmp(name, kPrefIPv4OnlyDomains)) { - MutexAutoLock lock(mLock); Preferences::GetCString(kPrefIPv4OnlyDomains, mIPv4OnlyDomains); } if (!name || !strcmp(name, kPrefDnsLocalDomains)) { @@ -846,6 +842,7 @@ void nsDNSService::ReadPrefs(const char* name) { NS_IMETHODIMP nsDNSService::Init() { + MOZ_ASSERT(!mResolver); MOZ_ASSERT(NS_IsMainThread()); ReadPrefs(nullptr); @@ -863,7 +860,6 @@ nsDNSService::Init() { if (NS_SUCCEEDED(rv)) { // now, set all of our member variables while holding the lock MutexAutoLock lock(mLock); - MOZ_ASSERT(!mResolver); mResolver = res; } @@ -889,12 +885,7 @@ nsDNSService::Init() { do_GetService("@mozilla.org/network/oblivious-http-service;1")); mTrrService = new TRRService(); - bool httpsEnabled; - { - MutexAutoLock lock(mLock); - httpsEnabled = mResolver->IsNativeHTTPSEnabled(); - } - if (NS_FAILED(mTrrService->Init(httpsEnabled))) { + if (NS_FAILED(mTrrService->Init(mResolver->IsNativeHTTPSEnabled()))) { mTrrService = nullptr; } @@ -1529,14 +1520,14 @@ nsresult nsDNSService::GetTRRDomainKey(nsACString& aTRRDomain) { return NS_OK; } -size_t nsDNSService::SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) { +size_t nsDNSService::SizeOfIncludingThis( + mozilla::MallocSizeOf mallocSizeOf) const { // Measurement of the following members may be added later if DMD finds it // is worthwhile: // - mIDN // - mLock size_t n = mallocSizeOf(this); - MutexAutoLock lock(mLock); n += mResolver ? mResolver->SizeOfIncludingThis(mallocSizeOf) : 0; n += mIPv4OnlyDomains.SizeOfExcludingThisIfUnshared(mallocSizeOf); n += mLocalDomains.SizeOfExcludingThis(mallocSizeOf); diff --git a/netwerk/dns/nsDNSService2.h b/netwerk/dns/nsDNSService2.h @@ -40,7 +40,7 @@ class DNSServiceWrapper final : public nsPIDNSService { nsPIDNSService* PIDNSService(); mozilla::Mutex mLock{"DNSServiceWrapper.mLock"}; - nsCOMPtr<nsIDNSService> mDNSServiceInUse MOZ_GUARDED_BY(mLock); + nsCOMPtr<nsIDNSService> mDNSServiceInUse; nsCOMPtr<nsIDNSService> mBackupDNSService; }; @@ -58,7 +58,7 @@ class nsDNSService final : public mozilla::net::DNSServiceBase, static already_AddRefed<nsIDNSService> GetXPCOMSingleton(); - size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf); + size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const; bool GetOffline() const; @@ -83,7 +83,7 @@ class nsDNSService final : public mozilla::net::DNSServiceBase, nsresult PreprocessHostname(bool aLocalDomain, const nsACString& aInput, nsACString& aACE); - bool IsLocalDomain(const nsACString& aHostname) const MOZ_REQUIRES(mLock); + bool IsLocalDomain(const nsACString& aHostname) const; nsresult AsyncResolveInternal( const nsACString& aHostname, uint16_t type, nsIDNSService::DNSFlags flags, @@ -106,27 +106,25 @@ class nsDNSService final : public mozilla::net::DNSServiceBase, // Locks the mutex and returns an addreffed resolver. May return null. already_AddRefed<nsHostResolver> GetResolverLocked(); - RefPtr<nsHostResolver> mResolver MOZ_GUARDED_BY(mLock); + RefPtr<nsHostResolver> mResolver; // mLock protects access to mResolver, mLocalDomains, mIPv4OnlyDomains, // mFailedSVCDomainNames, and mMockHTTPSRRDomain. - mozilla::Mutex mLock{"nsDNSServer.mLock"}; + mozilla::Mutex mLock MOZ_UNANNOTATED{"nsDNSServer.mLock"}; // mIPv4OnlyDomains is a comma-separated list of domains for which only // IPv4 DNS lookups are performed. This allows the user to disable IPv6 on // a per-domain basis and work around broken DNS servers. See bug 68796. - nsCString mIPv4OnlyDomains MOZ_GUARDED_BY(mLock); + nsCString mIPv4OnlyDomains; nsCString mForceResolve; - nsCString mMockHTTPSRRDomain MOZ_GUARDED_BY(mLock); + nsCString mMockHTTPSRRDomain; mozilla::Atomic<bool, mozilla::Relaxed> mHasMockHTTPSRRDomainSet{false}; bool mNotifyResolution = false; bool mForceResolveOn = false; - nsTHashSet<nsCString> mLocalDomains MOZ_GUARDED_BY(mLock); + nsTHashSet<nsCString> mLocalDomains; RefPtr<mozilla::net::TRRService> mTrrService; - nsClassHashtable<nsCStringHashKey, nsTArray<nsCString>> mFailedSVCDomainNames - MOZ_GUARDED_BY(mLock); - ; + nsClassHashtable<nsCStringHashKey, nsTArray<nsCString>> mFailedSVCDomainNames; }; already_AddRefed<nsIDNSService> GetOrInitDNSService();