[Code Health] Remove a use of base::SupportsWeakPtr. (net/dns)
Bug: 40485134
Change-Id: If8697f456037d6c2b6e3c767e83c0f34d8539e77
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5634532
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Eric Orth <ericorth@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1315837}
diff --git a/net/dns/host_resolver_dns_task.cc b/net/dns/host_resolver_dns_task.cc
index 77b56a0..2c14414 100644
--- a/net/dns/host_resolver_dns_task.cc
+++ b/net/dns/host_resolver_dns_task.cc
@@ -631,8 +631,9 @@
// Sort() potentially calls OnTransactionSorted() synchronously.
client_->GetAddressSorter()->Sort(
endpoints_to_sort,
- base::BindOnce(&HostResolverDnsTask::OnTransactionSorted, AsWeakPtr(),
- insertion_result.first, std::move(transaction_results)));
+ base::BindOnce(&HostResolverDnsTask::OnTransactionSorted,
+ weak_ptr_factory_.GetWeakPtr(), insertion_result.first,
+ std::move(transaction_results)));
} else {
HandleTransactionResults(std::move(transaction_info),
std::move(transaction_results));
@@ -831,7 +832,8 @@
// Sort addresses if needed. Sort could complete synchronously.
client_->GetAddressSorter()->Sort(
ip_endpoints,
- base::BindOnce(&HostResolverDnsTask::OnSortComplete, AsWeakPtr(),
+ base::BindOnce(&HostResolverDnsTask::OnSortComplete,
+ weak_ptr_factory_.GetWeakPtr(),
tick_clock_->NowTicks(), std::move(results), secure_));
return;
}
diff --git a/net/dns/host_resolver_dns_task.h b/net/dns/host_resolver_dns_task.h
index 48c1a2f..388546a 100644
--- a/net/dns/host_resolver_dns_task.h
+++ b/net/dns/host_resolver_dns_task.h
@@ -40,8 +40,7 @@
// a DNS stub resolver. One DnsTransaction is created for each resolution
// needed, which for AF_UNSPEC resolutions includes both A and AAAA. The
// transactions are scheduled separately and started separately.
-class NET_EXPORT_PRIVATE HostResolverDnsTask
- : public base::SupportsWeakPtr<HostResolverDnsTask> {
+class NET_EXPORT_PRIVATE HostResolverDnsTask final {
public:
using Results = std::set<std::unique_ptr<HostResolverInternalResult>>;
@@ -114,6 +113,10 @@
void StartNextTransaction();
+ base::WeakPtr<HostResolverDnsTask> AsWeakPtr() {
+ return weak_ptr_factory_.GetWeakPtr();
+ }
+
private:
enum class TransactionErrorBehavior {
// Errors lead to task fallback (immediately unless another pending/started
@@ -258,6 +261,8 @@
bool fallback_available_;
const HostResolver::HttpsSvcbOptions https_svcb_options_;
+
+ base::WeakPtrFactory<HostResolverDnsTask> weak_ptr_factory_{this};
};
} // namespace net
diff --git a/net/dns/mdns_client_impl.cc b/net/dns/mdns_client_impl.cc
index 9d6d8b9..8ad8398 100644
--- a/net/dns/mdns_client_impl.cc
+++ b/net/dns/mdns_client_impl.cc
@@ -423,7 +423,7 @@
// happens while iterating over the observer list.
base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
FROM_HERE, base::BindOnce(&MDnsClientImpl::Core::CleanupObserverList,
- AsWeakPtr(), key));
+ weak_ptr_factory_.GetWeakPtr(), key));
}
}
@@ -628,8 +628,8 @@
return;
}
- next_refresh_.Reset(
- base::BindRepeating(&MDnsListenerImpl::DoRefresh, AsWeakPtr()));
+ next_refresh_.Reset(base::BindRepeating(&MDnsListenerImpl::DoRefresh,
+ weak_ptr_factory_.GetWeakPtr()));
// Schedule refreshes at both 85% and 95% of the original TTL. These will both
// be canceled and rescheduled if the record's TTL is updated due to a
@@ -680,7 +680,7 @@
DCHECK(!started_);
started_ = true;
- base::WeakPtr<MDnsTransactionImpl> weak_this = AsWeakPtr();
+ base::WeakPtr<MDnsTransactionImpl> weak_this = weak_ptr_factory_.GetWeakPtr();
if (flags_ & MDnsTransaction::QUERY_CACHE) {
ServeRecordsFromCache();
@@ -754,7 +754,7 @@
void MDnsTransactionImpl::ServeRecordsFromCache() {
std::vector<const RecordParsed*> records;
- base::WeakPtr<MDnsTransactionImpl> weak_this = AsWeakPtr();
+ base::WeakPtr<MDnsTransactionImpl> weak_this = weak_ptr_factory_.GetWeakPtr();
if (client_->core()) {
client_->core()->QueryCache(rrtype_, name_, &records);
@@ -788,8 +788,8 @@
if (!client_->core()->SendQuery(rrtype_, name_))
return false;
- timeout_.Reset(
- base::BindOnce(&MDnsTransactionImpl::SignalTransactionOver, AsWeakPtr()));
+ timeout_.Reset(base::BindOnce(&MDnsTransactionImpl::SignalTransactionOver,
+ weak_ptr_factory_.GetWeakPtr()));
base::SingleThreadTaskRunner::GetCurrentDefault()->PostDelayedTask(
FROM_HERE, timeout_.callback(), kTransactionTimeout);
diff --git a/net/dns/mdns_client_impl.h b/net/dns/mdns_client_impl.h
index bc98f70..1b0b0a5 100644
--- a/net/dns/mdns_client_impl.h
+++ b/net/dns/mdns_client_impl.h
@@ -17,6 +17,7 @@
#include "base/containers/queue.h"
#include "base/gtest_prod_util.h"
#include "base/memory/raw_ptr.h"
+#include "base/memory/weak_ptr.h"
#include "base/observer_list.h"
#include "base/time/time.h"
#include "net/base/io_buffer.h"
@@ -131,7 +132,7 @@
// whenever the number of listeners reaches zero. The deletion happens
// asychronously, so destroying the last listener does not immediately
// invalidate the core.
- class Core : public base::SupportsWeakPtr<Core>, MDnsConnection::Delegate {
+ class Core final : public MDnsConnection::Delegate {
public:
Core(base::Clock* clock, base::OneShotTimer* timer);
@@ -210,6 +211,7 @@
base::Time scheduled_cleanup_;
std::unique_ptr<MDnsConnection> connection_;
+ base::WeakPtrFactory<Core> weak_ptr_factory_{this};
};
MDnsClientImpl();
@@ -248,8 +250,7 @@
std::unique_ptr<Core> core_;
};
-class MDnsListenerImpl : public MDnsListener,
- public base::SupportsWeakPtr<MDnsListenerImpl> {
+class MDnsListenerImpl final : public MDnsListener {
public:
MDnsListenerImpl(uint16_t rrtype,
const std::string& name,
@@ -297,11 +298,11 @@
bool active_refresh_ = false;
base::CancelableRepeatingClosure next_refresh_;
+ base::WeakPtrFactory<MDnsListenerImpl> weak_ptr_factory_{this};
};
-class MDnsTransactionImpl : public base::SupportsWeakPtr<MDnsTransactionImpl>,
- public MDnsTransaction,
- public MDnsListener::Delegate {
+class MDnsTransactionImpl final : public MDnsTransaction,
+ public MDnsListener::Delegate {
public:
MDnsTransactionImpl(uint16_t rrtype,
const std::string& name,
@@ -362,6 +363,7 @@
bool started_ = false;
int flags_;
+ base::WeakPtrFactory<MDnsTransactionImpl> weak_ptr_factory_{this};
};
} // namespace net