Commit d90bc8c1 authored by Gyuyoung Kim's avatar Gyuyoung Kim Committed by Commit Bot

Clean up P2PSocketManagerRequest|Ptr in Blink

There is a still old uses of P2PSocketManager interface
in P2PSocketDispatcher class. This CL converts them to
new Mojo types.

 - Convert ThreadSafeP2PSocketManagerPtr to mojo::SharedRemote
 - Convert P2PSocketManagerPtr to mojo::PendingRemote<P2PSocketManager>
 - Convert P2PSocketManagerRequest to mojo::PendingReceiver<P2PSocketManager>

Bug: 955171, 978694
Change-Id: Ibdffcdb6bb1c08afad58bf39592fad1fe8eccff0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1924331Reviewed-by: default avatarSergey Ulanov <sergeyu@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Commit-Queue: Gyuyoung Kim <gyuyoung@igalia.com>
Cr-Commit-Position: refs/heads/master@{#721850}
parent 6dd74668
...@@ -35,7 +35,7 @@ void P2PAsyncAddressResolver::Start(const rtc::SocketAddress& host_name, ...@@ -35,7 +35,7 @@ void P2PAsyncAddressResolver::Start(const rtc::SocketAddress& host_name,
done_callback_ = std::move(done_callback); done_callback_ = std::move(done_callback);
bool enable_mdns = base::FeatureList::IsEnabled( bool enable_mdns = base::FeatureList::IsEnabled(
blink::features::kWebRtcHideLocalIpsWithMdns); blink::features::kWebRtcHideLocalIpsWithMdns);
dispatcher_->GetP2PSocketManager()->get()->GetHostAddress( dispatcher_->GetP2PSocketManager()->GetHostAddress(
String(host_name.hostname().data()), enable_mdns, String(host_name.hostname().data()), enable_mdns,
base::BindOnce(&P2PAsyncAddressResolver::OnResponse, base::BindOnce(&P2PAsyncAddressResolver::OnResponse,
base::Unretained(this))); base::Unretained(this)));
......
...@@ -56,7 +56,7 @@ void P2PSocketClientImpl::Init( ...@@ -56,7 +56,7 @@ void P2PSocketClientImpl::Init(
DCHECK_EQ(state_, STATE_UNINITIALIZED); DCHECK_EQ(state_, STATE_UNINITIALIZED);
state_ = STATE_OPENING; state_ = STATE_OPENING;
dispatcher_->GetP2PSocketManager()->get()->CreateSocket( dispatcher_->GetP2PSocketManager()->CreateSocket(
type, local_address, network::P2PPortRange(min_port, max_port), type, local_address, network::P2PPortRange(min_port, max_port),
remote_address, receiver_.BindNewPipeAndPassRemote(), remote_address, receiver_.BindNewPipeAndPassRemote(),
socket_.BindNewPipeAndPassReceiver()); socket_.BindNewPipeAndPassReceiver());
......
...@@ -35,22 +35,26 @@ void P2PSocketDispatcher::RemoveNetworkListObserver( ...@@ -35,22 +35,26 @@ void P2PSocketDispatcher::RemoveNetworkListObserver(
network_list_observers_->RemoveObserver(network_list_observer); network_list_observers_->RemoveObserver(network_list_observer);
} }
scoped_refptr<network::mojom::blink::ThreadSafeP2PSocketManagerPtr> network::mojom::blink::P2PSocketManager*
P2PSocketDispatcher::GetP2PSocketManager() { P2PSocketDispatcher::GetP2PSocketManager() {
base::AutoLock lock(p2p_socket_manager_lock_); base::AutoLock lock(p2p_socket_manager_lock_);
if (!thread_safe_p2p_socket_manager_) { if (!p2p_socket_manager_) {
network::mojom::blink::P2PSocketManagerPtr p2p_socket_manager; mojo::PendingRemote<network::mojom::blink::P2PSocketManager>
p2p_socket_manager_request_ = mojo::MakeRequest(&p2p_socket_manager); p2p_socket_manager;
p2p_socket_manager.set_connection_error_handler(base::BindOnce( p2p_socket_manager_receiver_ =
&P2PSocketDispatcher::OnConnectionError, base::Unretained(this))); p2p_socket_manager.InitWithNewPipeAndPassReceiver();
thread_safe_p2p_socket_manager_ = p2p_socket_manager_ =
network::mojom::blink::ThreadSafeP2PSocketManagerPtr::Create( mojo::SharedRemote<network::mojom::blink::P2PSocketManager>(
std::move(p2p_socket_manager)); std::move(p2p_socket_manager));
p2p_socket_manager_.set_disconnect_handler(
base::BindOnce(&P2PSocketDispatcher::OnConnectionError,
base::Unretained(this)),
main_task_runner_);
} }
main_task_runner_->PostTask( main_task_runner_->PostTask(
FROM_HERE, FROM_HERE,
base::BindOnce(&P2PSocketDispatcher::RequestInterfaceIfNecessary, this)); base::BindOnce(&P2PSocketDispatcher::RequestInterfaceIfNecessary, this));
return thread_safe_p2p_socket_manager_; return p2p_socket_manager_.get();
} }
void P2PSocketDispatcher::NetworkListChanged( void P2PSocketDispatcher::NetworkListChanged(
...@@ -75,11 +79,11 @@ void P2PSocketDispatcher::NetworkListChanged( ...@@ -75,11 +79,11 @@ void P2PSocketDispatcher::NetworkListChanged(
} }
void P2PSocketDispatcher::RequestInterfaceIfNecessary() { void P2PSocketDispatcher::RequestInterfaceIfNecessary() {
if (!p2p_socket_manager_request_.is_pending()) if (!p2p_socket_manager_receiver_.is_valid())
return; return;
blink::Platform::Current()->GetBrowserInterfaceBroker()->GetInterface( blink::Platform::Current()->GetBrowserInterfaceBroker()->GetInterface(
std::move(p2p_socket_manager_request_)); std::move(p2p_socket_manager_receiver_));
} }
void P2PSocketDispatcher::RequestNetworkEventsIfNecessary() { void P2PSocketDispatcher::RequestNetworkEventsIfNecessary() {
...@@ -96,14 +100,14 @@ void P2PSocketDispatcher::RequestNetworkEventsIfNecessary() { ...@@ -96,14 +100,14 @@ void P2PSocketDispatcher::RequestNetworkEventsIfNecessary() {
std::move(copy), default_ipv4_local_address_, std::move(copy), default_ipv4_local_address_,
default_ipv6_local_address_); default_ipv6_local_address_);
} else { } else {
GetP2PSocketManager()->get()->StartNetworkNotifications( GetP2PSocketManager()->StartNetworkNotifications(
network_notification_client_receiver_.BindNewPipeAndPassRemote()); network_notification_client_receiver_.BindNewPipeAndPassRemote());
} }
} }
void P2PSocketDispatcher::OnConnectionError() { void P2PSocketDispatcher::OnConnectionError() {
base::AutoLock lock(p2p_socket_manager_lock_); base::AutoLock lock(p2p_socket_manager_lock_);
thread_safe_p2p_socket_manager_.reset(); p2p_socket_manager_.reset();
} }
} // namespace blink } // namespace blink
...@@ -29,7 +29,9 @@ ...@@ -29,7 +29,9 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/observer_list_threadsafe.h" #include "base/observer_list_threadsafe.h"
#include "base/synchronization/lock.h" #include "base/synchronization/lock.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/shared_remote.h"
#include "mojo/public/cpp/bindings/thread_safe_interface_ptr.h" #include "mojo/public/cpp/bindings/thread_safe_interface_ptr.h"
#include "net/base/ip_address.h" #include "net/base/ip_address.h"
#include "net/base/network_interfaces.h" #include "net/base/network_interfaces.h"
...@@ -64,8 +66,7 @@ class PLATFORM_EXPORT P2PSocketDispatcher ...@@ -64,8 +66,7 @@ class PLATFORM_EXPORT P2PSocketDispatcher
void RemoveNetworkListObserver( void RemoveNetworkListObserver(
blink::NetworkListObserver* network_list_observer) override; blink::NetworkListObserver* network_list_observer) override;
scoped_refptr<network::mojom::blink::ThreadSafeP2PSocketManagerPtr> network::mojom::blink::P2PSocketManager* GetP2PSocketManager();
GetP2PSocketManager();
private: private:
friend class base::RefCountedThreadSafe<P2PSocketDispatcher>; friend class base::RefCountedThreadSafe<P2PSocketDispatcher>;
...@@ -90,9 +91,10 @@ class PLATFORM_EXPORT P2PSocketDispatcher ...@@ -90,9 +91,10 @@ class PLATFORM_EXPORT P2PSocketDispatcher
scoped_refptr<base::ObserverListThreadSafe<blink::NetworkListObserver>> scoped_refptr<base::ObserverListThreadSafe<blink::NetworkListObserver>>
network_list_observers_; network_list_observers_;
network::mojom::blink::P2PSocketManagerRequest p2p_socket_manager_request_; mojo::PendingReceiver<network::mojom::blink::P2PSocketManager>
scoped_refptr<network::mojom::blink::ThreadSafeP2PSocketManagerPtr> p2p_socket_manager_receiver_;
thread_safe_p2p_socket_manager_; mojo::SharedRemote<network::mojom::blink::P2PSocketManager>
p2p_socket_manager_;
base::Lock p2p_socket_manager_lock_; base::Lock p2p_socket_manager_lock_;
// Cached from last |NetworkListChanged| call. // Cached from last |NetworkListChanged| call.
......
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