Commit 634284b9 authored by Miyoung Shin's avatar Miyoung Shin Committed by Commit Bot

Convert MdnsListenClient to new Mojo types

This CL converts MdnsListenClientPtr and Binding<MdnsListenClient>
in chrome and services to the new Mojo type, and
uses pending_remote<T> in host_resolver.mojom.

Bug: 955171
Change-Id: Ie1821bd2d5edbbbcfc14ce8380053ce9cfaa2be5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1860535
Commit-Queue: Miyoung Shin <myid.shin@igalia.com>
Reviewed-by: default avatarMatt Menke <mmenke@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#706412}
parent 028d492d
...@@ -65,7 +65,7 @@ void FakeHostResolver::ResolveHost( ...@@ -65,7 +65,7 @@ void FakeHostResolver::ResolveHost(
void FakeHostResolver::MdnsListen( void FakeHostResolver::MdnsListen(
const net::HostPortPair& host, const net::HostPortPair& host,
net::DnsQueryType query_type, net::DnsQueryType query_type,
network::mojom::MdnsListenClientPtr response_client, mojo::PendingRemote<network::mojom::MdnsListenClient> response_client,
MdnsListenCallback callback) { MdnsListenCallback callback) {
NOTREACHED(); NOTREACHED();
} }
...@@ -89,7 +89,7 @@ void HangingHostResolver::ResolveHost( ...@@ -89,7 +89,7 @@ void HangingHostResolver::ResolveHost(
void HangingHostResolver::MdnsListen( void HangingHostResolver::MdnsListen(
const net::HostPortPair& host, const net::HostPortPair& host,
net::DnsQueryType query_type, net::DnsQueryType query_type,
network::mojom::MdnsListenClientPtr response_client, mojo::PendingRemote<network::mojom::MdnsListenClient> response_client,
MdnsListenCallback callback) { MdnsListenCallback callback) {
NOTREACHED(); NOTREACHED();
} }
......
...@@ -50,9 +50,10 @@ class FakeHostResolver : public network::mojom::HostResolver { ...@@ -50,9 +50,10 @@ class FakeHostResolver : public network::mojom::HostResolver {
mojo::PendingRemote<network::mojom::ResolveHostClient> mojo::PendingRemote<network::mojom::ResolveHostClient>
pending_response_client) override; pending_response_client) override;
void MdnsListen(const net::HostPortPair& host, void MdnsListen(
const net::HostPortPair& host,
net::DnsQueryType query_type, net::DnsQueryType query_type,
network::mojom::MdnsListenClientPtr response_client, mojo::PendingRemote<network::mojom::MdnsListenClient> response_client,
MdnsListenCallback callback) override; MdnsListenCallback callback) override;
private: private:
...@@ -72,9 +73,10 @@ class HangingHostResolver : public network::mojom::HostResolver { ...@@ -72,9 +73,10 @@ class HangingHostResolver : public network::mojom::HostResolver {
mojo::PendingRemote<network::mojom::ResolveHostClient> mojo::PendingRemote<network::mojom::ResolveHostClient>
response_client) override; response_client) override;
void MdnsListen(const net::HostPortPair& host, void MdnsListen(
const net::HostPortPair& host,
net::DnsQueryType query_type, net::DnsQueryType query_type,
network::mojom::MdnsListenClientPtr response_client, mojo::PendingRemote<network::mojom::MdnsListenClient> response_client,
MdnsListenCallback callback) override; MdnsListenCallback callback) override;
private: private:
......
...@@ -107,9 +107,10 @@ void HostResolver::ResolveHost( ...@@ -107,9 +107,10 @@ void HostResolver::ResolveHost(
DCHECK(insertion_result); DCHECK(insertion_result);
} }
void HostResolver::MdnsListen(const net::HostPortPair& host, void HostResolver::MdnsListen(
const net::HostPortPair& host,
net::DnsQueryType query_type, net::DnsQueryType query_type,
mojom::MdnsListenClientPtr response_client, mojo::PendingRemote<mojom::MdnsListenClient> response_client,
MdnsListenCallback callback) { MdnsListenCallback callback) {
#if !BUILDFLAG(ENABLE_MDNS) #if !BUILDFLAG(ENABLE_MDNS)
NOTREACHED(); NOTREACHED();
......
...@@ -55,7 +55,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) HostResolver ...@@ -55,7 +55,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) HostResolver
mojo::PendingRemote<mojom::ResolveHostClient> response_client) override; mojo::PendingRemote<mojom::ResolveHostClient> response_client) override;
void MdnsListen(const net::HostPortPair& host, void MdnsListen(const net::HostPortPair& host,
net::DnsQueryType query_type, net::DnsQueryType query_type,
mojom::MdnsListenClientPtr response_client, mojo::PendingRemote<mojom::MdnsListenClient> response_client,
MdnsListenCallback callback) override; MdnsListenCallback callback) override;
size_t GetNumOutstandingRequestsForTesting() const; size_t GetNumOutstandingRequestsForTesting() const;
......
...@@ -23,10 +23,11 @@ HostResolverMdnsListener::HostResolverMdnsListener( ...@@ -23,10 +23,11 @@ HostResolverMdnsListener::HostResolverMdnsListener(
HostResolverMdnsListener::~HostResolverMdnsListener() { HostResolverMdnsListener::~HostResolverMdnsListener() {
internal_listener_ = nullptr; internal_listener_ = nullptr;
response_client_ = nullptr; response_client_.reset();
} }
int HostResolverMdnsListener::Start(mojom::MdnsListenClientPtr response_client, int HostResolverMdnsListener::Start(
mojo::PendingRemote<mojom::MdnsListenClient> response_client,
base::OnceClosure cancellation_callback) { base::OnceClosure cancellation_callback) {
DCHECK(internal_listener_); DCHECK(internal_listener_);
DCHECK(!response_client_.is_bound()); DCHECK(!response_client_.is_bound());
...@@ -35,10 +36,10 @@ int HostResolverMdnsListener::Start(mojom::MdnsListenClientPtr response_client, ...@@ -35,10 +36,10 @@ int HostResolverMdnsListener::Start(mojom::MdnsListenClientPtr response_client,
if (rv != net::OK) if (rv != net::OK)
return rv; return rv;
response_client_ = std::move(response_client); response_client_.Bind(std::move(response_client));
// Unretained |this| reference is safe because connection error cannot occur // Unretained |this| reference is safe because connection error cannot occur
// if |response_client_| goes out of scope. // if |response_client_| goes out of scope.
response_client_.set_connection_error_handler(base::BindOnce( response_client_.set_disconnect_handler(base::BindOnce(
&HostResolverMdnsListener::OnConnectionError, base::Unretained(this))); &HostResolverMdnsListener::OnConnectionError, base::Unretained(this)));
cancellation_callback_ = std::move(cancellation_callback); cancellation_callback_ = std::move(cancellation_callback);
......
...@@ -11,6 +11,8 @@ ...@@ -11,6 +11,8 @@
#include "base/callback_forward.h" #include "base/callback_forward.h"
#include "base/macros.h" #include "base/macros.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "net/base/ip_endpoint.h" #include "net/base/ip_endpoint.h"
#include "net/dns/host_resolver.h" #include "net/dns/host_resolver.h"
#include "net/dns/public/dns_query_type.h" #include "net/dns/public/dns_query_type.h"
...@@ -30,7 +32,7 @@ class HostResolverMdnsListener ...@@ -30,7 +32,7 @@ class HostResolverMdnsListener
net::DnsQueryType query_type); net::DnsQueryType query_type);
~HostResolverMdnsListener() override; ~HostResolverMdnsListener() override;
int Start(mojom::MdnsListenClientPtr response_client, int Start(mojo::PendingRemote<mojom::MdnsListenClient> response_client,
base::OnceClosure cancellation_callback); base::OnceClosure cancellation_callback);
// net::HostResolver::MdnsListenerDelegate implementation // net::HostResolver::MdnsListenerDelegate implementation
...@@ -54,7 +56,7 @@ class HostResolverMdnsListener ...@@ -54,7 +56,7 @@ class HostResolverMdnsListener
void OnConnectionError(); void OnConnectionError();
std::unique_ptr<net::HostResolver::MdnsListener> internal_listener_; std::unique_ptr<net::HostResolver::MdnsListener> internal_listener_;
mojom::MdnsListenClientPtr response_client_; mojo::Remote<mojom::MdnsListenClient> response_client_;
base::OnceClosure cancellation_callback_; base::OnceClosure cancellation_callback_;
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include "base/test/bind_test_util.h" #include "base/test/bind_test_util.h"
#include "base/test/simple_test_tick_clock.h" #include "base/test/simple_test_tick_clock.h"
#include "base/test/task_environment.h" #include "base/test/task_environment.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/bindings/remote.h"
...@@ -124,8 +123,9 @@ class TestMdnsListenClient : public mojom::MdnsListenClient { ...@@ -124,8 +123,9 @@ class TestMdnsListenClient : public mojom::MdnsListenClient {
using UpdateType = net::HostResolver::MdnsListener::Delegate::UpdateType; using UpdateType = net::HostResolver::MdnsListener::Delegate::UpdateType;
using UpdateKey = std::pair<UpdateType, net::DnsQueryType>; using UpdateKey = std::pair<UpdateType, net::DnsQueryType>;
explicit TestMdnsListenClient(mojom::MdnsListenClientPtr* interface_ptr) explicit TestMdnsListenClient(
: binding_(this, mojo::MakeRequest(interface_ptr)) {} mojo::PendingRemote<mojom::MdnsListenClient>* remote)
: receiver_(this, remote->InitWithNewPipeAndPassReceiver()) {}
void OnAddressResult(UpdateType update_type, void OnAddressResult(UpdateType update_type,
net::DnsQueryType result_type, net::DnsQueryType result_type,
...@@ -177,7 +177,7 @@ class TestMdnsListenClient : public mojom::MdnsListenClient { ...@@ -177,7 +177,7 @@ class TestMdnsListenClient : public mojom::MdnsListenClient {
} }
private: private:
mojo::Binding<mojom::MdnsListenClient> binding_; mojo::Receiver<mojom::MdnsListenClient> receiver_;
std::multimap<UpdateKey, net::IPEndPoint> address_results_; std::multimap<UpdateKey, net::IPEndPoint> address_results_;
std::multimap<UpdateKey, std::string> text_results_; std::multimap<UpdateKey, std::string> text_results_;
...@@ -1268,7 +1268,7 @@ TEST_F(HostResolverTest, MdnsListener_AddressResult) { ...@@ -1268,7 +1268,7 @@ TEST_F(HostResolverTest, MdnsListener_AddressResult) {
auto inner_resolver = std::make_unique<net::MockHostResolver>(); auto inner_resolver = std::make_unique<net::MockHostResolver>();
HostResolver resolver(inner_resolver.get(), &net_log); HostResolver resolver(inner_resolver.get(), &net_log);
mojom::MdnsListenClientPtr pending_response_client; mojo::PendingRemote<mojom::MdnsListenClient> pending_response_client;
TestMdnsListenClient response_client(&pending_response_client); TestMdnsListenClient response_client(&pending_response_client);
int error = net::ERR_FAILED; int error = net::ERR_FAILED;
...@@ -1306,7 +1306,7 @@ TEST_F(HostResolverTest, MdnsListener_TextResult) { ...@@ -1306,7 +1306,7 @@ TEST_F(HostResolverTest, MdnsListener_TextResult) {
auto inner_resolver = std::make_unique<net::MockHostResolver>(); auto inner_resolver = std::make_unique<net::MockHostResolver>();
HostResolver resolver(inner_resolver.get(), &net_log); HostResolver resolver(inner_resolver.get(), &net_log);
mojom::MdnsListenClientPtr pending_response_client; mojo::PendingRemote<mojom::MdnsListenClient> pending_response_client;
TestMdnsListenClient response_client(&pending_response_client); TestMdnsListenClient response_client(&pending_response_client);
int error = net::ERR_FAILED; int error = net::ERR_FAILED;
...@@ -1348,7 +1348,7 @@ TEST_F(HostResolverTest, MdnsListener_HostnameResult) { ...@@ -1348,7 +1348,7 @@ TEST_F(HostResolverTest, MdnsListener_HostnameResult) {
auto inner_resolver = std::make_unique<net::MockHostResolver>(); auto inner_resolver = std::make_unique<net::MockHostResolver>();
HostResolver resolver(inner_resolver.get(), &net_log); HostResolver resolver(inner_resolver.get(), &net_log);
mojom::MdnsListenClientPtr pending_response_client; mojo::PendingRemote<mojom::MdnsListenClient> pending_response_client;
TestMdnsListenClient response_client(&pending_response_client); TestMdnsListenClient response_client(&pending_response_client);
int error = net::ERR_FAILED; int error = net::ERR_FAILED;
...@@ -1386,7 +1386,7 @@ TEST_F(HostResolverTest, MdnsListener_UnhandledResult) { ...@@ -1386,7 +1386,7 @@ TEST_F(HostResolverTest, MdnsListener_UnhandledResult) {
auto inner_resolver = std::make_unique<net::MockHostResolver>(); auto inner_resolver = std::make_unique<net::MockHostResolver>();
HostResolver resolver(inner_resolver.get(), &net_log); HostResolver resolver(inner_resolver.get(), &net_log);
mojom::MdnsListenClientPtr pending_response_client; mojo::PendingRemote<mojom::MdnsListenClient> pending_response_client;
TestMdnsListenClient response_client(&pending_response_client); TestMdnsListenClient response_client(&pending_response_client);
int error = net::ERR_FAILED; int error = net::ERR_FAILED;
......
...@@ -287,7 +287,8 @@ interface HostResolver { ...@@ -287,7 +287,8 @@ interface HostResolver {
// notifications if the HostResolver or parent NetworkContext are destroyed. // notifications if the HostResolver or parent NetworkContext are destroyed.
MdnsListen(HostPortPair host, MdnsListen(HostPortPair host,
DnsQueryType query_type, DnsQueryType query_type,
MdnsListenClient response_client) => (int32 result); pending_remote<MdnsListenClient> response_client)
=> (int32 result);
}; };
// A client interface that subscribes to DNS config change events from // A client interface that subscribes to DNS config change events from
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment