Commit d896b43d authored by Zach Stein's avatar Zach Stein Committed by Commit Bot

Enable MDNS in the network service based on the feature flag in content.

Bug: chromium:875740
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: Iec6efad4b3d92877288fd29450f11ac008b26d27
Reviewed-on: https://chromium-review.googlesource.com/c/1280551Reviewed-by: default avatarTom Sepez <tsepez@chromium.org>
Reviewed-by: default avatarSergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Zach Stein <zstein@google.com>
Cr-Commit-Position: refs/heads/master@{#603160}
parent 0be054cb
......@@ -6,8 +6,10 @@
#include "base/bind.h"
#include "base/callback_helpers.h"
#include "base/feature_list.h"
#include "base/location.h"
#include "base/threading/thread_task_runner_handle.h"
#include "content/public/common/content_features.h"
#include "content/renderer/p2p/socket_dispatcher.h"
#include "jingle/glue/utils.h"
......@@ -30,9 +32,12 @@ void P2PAsyncAddressResolver::Start(const rtc::SocketAddress& host_name,
state_ = STATE_SENT;
done_callback_ = done_callback;
bool enable_mdns =
base::FeatureList::IsEnabled(features::kWebRtcHideLocalIpsWithMdns);
dispatcher_->GetP2PSocketManager()->get()->GetHostAddress(
host_name.hostname(), base::BindOnce(&P2PAsyncAddressResolver::OnResponse,
base::Unretained(this)));
host_name.hostname(), enable_mdns,
base::BindOnce(&P2PAsyncAddressResolver::OnResponse,
base::Unretained(this)));
}
void P2PAsyncAddressResolver::Cancel() {
......
......@@ -67,8 +67,8 @@ class P2PSocketManager::DnsRequest {
public:
typedef base::Callback<void(const net::IPAddressList&)> DoneCallback;
explicit DnsRequest(net::HostResolver* host_resolver)
: resolver_(host_resolver) {}
DnsRequest(net::HostResolver* host_resolver, bool enable_mdns)
: resolver_(host_resolver), enable_mdns_(enable_mdns) {}
void Resolve(const std::string& host_name,
const DoneCallback& done_callback) {
......@@ -90,9 +90,12 @@ class P2PSocketManager::DnsRequest {
host_name_ += '.';
net::HostPortPair host(host_name_, 0);
// TODO(crbug.com/879746): Pass in a
// net::HostResolver::ResolveHostParameters with source set to MDNS if we
// have a ".local." TLD (once MDNS is supported).
if (enable_mdns_) {
// TODO(crbug.com/879746): Pass in a
// net::HostResolver::ResolveHostParameters with source set to MDNS if we
// have a ".local." TLD and enable_mdns_ is set (once MDNS is supported).
}
request_ =
resolver_->CreateRequest(host, net::NetLogWithSource(), base::nullopt);
int result = request_->Start(base::BindOnce(
......@@ -124,6 +127,8 @@ class P2PSocketManager::DnsRequest {
std::unique_ptr<net::HostResolver::ResolveHostRequest> request_;
DoneCallback done_callback_;
const bool enable_mdns_;
};
P2PSocketManager::P2PSocketManager(
......@@ -258,9 +263,10 @@ void P2PSocketManager::StartNetworkNotifications(
void P2PSocketManager::GetHostAddress(
const std::string& host_name,
bool enable_mdns,
mojom::P2PSocketManager::GetHostAddressCallback callback) {
std::unique_ptr<DnsRequest> request =
std::make_unique<DnsRequest>(url_request_context_->host_resolver());
auto request = std::make_unique<DnsRequest>(
url_request_context_->host_resolver(), enable_mdns);
DnsRequest* request_ptr = request.get();
dns_requests_.insert(std::move(request));
request_ptr->Resolve(
......
......@@ -86,6 +86,7 @@ class P2PSocketManager
mojom::P2PNetworkNotificationClientPtr client) override;
void GetHostAddress(
const std::string& host_name,
bool enable_mdns,
mojom::P2PSocketManager::GetHostAddressCallback callback) override;
void CreateSocket(P2PSocketType type,
const net::IPEndPoint& local_address,
......
......@@ -40,7 +40,7 @@ interface P2PSocketManager {
// Starts listening to network list changed events.
StartNetworkNotifications(P2PNetworkNotificationClient client);
GetHostAddress(string host_name)
GetHostAddress(string host_name, bool enable_mdns)
=> (array<net.interfaces.IPAddress> addresses);
CreateSocket(P2PSocketType type,
......
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