Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(905)

Unified Diff: remoting/client/plugin/pepper_port_allocator.cc

Issue 1571943002: Simplify PortAllocatorBase and make PortAllocator creation synchronous. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/client/plugin/pepper_port_allocator.h ('k') | remoting/host/cast_extension.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/client/plugin/pepper_port_allocator.cc
diff --git a/remoting/client/plugin/pepper_port_allocator.cc b/remoting/client/plugin/pepper_port_allocator.cc
index f8554925d55905bd5511e23bb04cfc9527b6fe08..6f2e27a99ad20c8d10dcd5be5204d88e32c4c997 100644
--- a/remoting/client/plugin/pepper_port_allocator.cc
+++ b/remoting/client/plugin/pepper_port_allocator.cc
@@ -20,6 +20,7 @@
#include "remoting/client/plugin/pepper_network_manager.h"
#include "remoting/client/plugin/pepper_packet_socket_factory.h"
#include "remoting/client/plugin/pepper_util.h"
+#include "remoting/protocol/transport_context.h"
namespace remoting {
@@ -32,20 +33,14 @@ const int kReadSize = 1024;
class PepperPortAllocatorSession : public protocol::PortAllocatorSessionBase {
public:
PepperPortAllocatorSession(
- protocol::PortAllocatorBase* allocator,
+ PepperPortAllocator* allocator,
const std::string& content_name,
int component,
const std::string& ice_username_fragment,
- const std::string& ice_password,
- const std::vector<rtc::SocketAddress>& stun_hosts,
- const std::vector<std::string>& relay_hosts,
- const std::string& relay_token,
- const pp::InstanceHandle& instance);
+ const std::string& ice_password);
~PepperPortAllocatorSession() override;
// PortAllocatorBase overrides.
- void ConfigReady(cricket::PortConfiguration* config) override;
- void GetPortConfigurations() override;
void SendSessionRequest(const std::string& host) override;
private:
@@ -53,7 +48,7 @@ class PepperPortAllocatorSession : public protocol::PortAllocatorSessionBase {
void ReadResponseBody();
void OnResponseBodyRead(int32_t result);
- pp::InstanceHandle instance_;
+ pp::InstanceHandle pp_instance_;
cricket::ServerAddresses stun_hosts_;
@@ -67,58 +62,23 @@ class PepperPortAllocatorSession : public protocol::PortAllocatorSessionBase {
};
PepperPortAllocatorSession::PepperPortAllocatorSession(
- protocol::PortAllocatorBase* allocator,
+ PepperPortAllocator* allocator,
const std::string& content_name,
int component,
const std::string& ice_username_fragment,
- const std::string& ice_password,
- const std::vector<rtc::SocketAddress>& stun_hosts,
- const std::vector<std::string>& relay_hosts,
- const std::string& relay_token,
- const pp::InstanceHandle& instance)
+ const std::string& ice_password)
: PortAllocatorSessionBase(allocator,
content_name,
component,
ice_username_fragment,
- ice_password,
- stun_hosts,
- relay_hosts,
- relay_token),
- instance_(instance),
- stun_hosts_(stun_hosts.begin(), stun_hosts.end()),
- callback_factory_(this) {}
+ ice_password),
+ pp_instance_(allocator->pp_instance()) {}
PepperPortAllocatorSession::~PepperPortAllocatorSession() {}
-void PepperPortAllocatorSession::ConfigReady(
- cricket::PortConfiguration* config) {
- // Filter out non-UDP relay ports, so that we don't try using TCP.
- for (cricket::PortConfiguration::RelayList::iterator relay =
- config->relays.begin(); relay != config->relays.end(); ++relay) {
- cricket::PortList filtered_ports;
- for (cricket::PortList::iterator port =
- relay->ports.begin(); port != relay->ports.end(); ++port) {
- if (port->proto == cricket::PROTO_UDP) {
- filtered_ports.push_back(*port);
- }
- }
- relay->ports = filtered_ports;
- }
- cricket::BasicPortAllocatorSession::ConfigReady(config);
-}
-
-void PepperPortAllocatorSession::GetPortConfigurations() {
- // Add a configuration without relay response first so local and STUN
- // candidates can be allocated without waiting for the relay response.
- ConfigReady(new cricket::PortConfiguration(
- stun_hosts_, std::string(), std::string()));
-
- TryCreateRelaySession();
-}
-
void PepperPortAllocatorSession::SendSessionRequest(const std::string& host) {
- relay_url_loader_.reset(new pp::URLLoader(instance_));
- pp::URLRequestInfo request_info(instance_);
+ relay_url_loader_.reset(new pp::URLLoader(pp_instance_));
+ pp::URLRequestInfo request_info(pp_instance_);
std::string url = "https://" + host + GetSessionRequestUrl() + "&sn=1";
request_info.SetURL(url);
request_info.SetMethod("GET");
@@ -200,22 +160,14 @@ void PepperPortAllocatorSession::OnResponseBodyRead(int32_t result) {
} // namespace
-// static
-scoped_ptr<PepperPortAllocator> PepperPortAllocator::Create(
- const pp::InstanceHandle& instance) {
- return make_scoped_ptr(new PepperPortAllocator(
- instance, make_scoped_ptr(new PepperNetworkManager(instance)),
- make_scoped_ptr(new PepperPacketSocketFactory(instance))));
-}
-
PepperPortAllocator::PepperPortAllocator(
- const pp::InstanceHandle& instance,
- scoped_ptr<rtc::NetworkManager> network_manager,
- scoped_ptr<rtc::PacketSocketFactory> socket_factory)
- : PortAllocatorBase(network_manager.get(), socket_factory.get()),
- instance_(instance),
- network_manager_(std::move(network_manager)),
- socket_factory_(std::move(socket_factory)) {}
+ scoped_refptr<protocol::TransportContext> transport_context,
+ pp::InstanceHandle pp_instance)
+ : PortAllocatorBase(
+ make_scoped_ptr(new PepperNetworkManager(pp_instance)),
+ make_scoped_ptr(new PepperPacketSocketFactory(pp_instance)),
+ transport_context),
+ pp_instance_(pp_instance) {}
PepperPortAllocator::~PepperPortAllocator() {}
@@ -224,20 +176,21 @@ cricket::PortAllocatorSession* PepperPortAllocator::CreateSessionInternal(
int component,
const std::string& ice_username_fragment,
const std::string& ice_password) {
- return new PepperPortAllocatorSession(
- this, content_name, component, ice_username_fragment, ice_password,
- stun_hosts(), relay_hosts(), relay_token(), instance_);
+ return new PepperPortAllocatorSession(this, content_name, component,
+ ice_username_fragment, ice_password);
}
PepperPortAllocatorFactory::PepperPortAllocatorFactory(
- const pp::InstanceHandle& instance)
- : instance_(instance) {}
+ pp::InstanceHandle pp_instance)
+ : pp_instance_(pp_instance) {}
PepperPortAllocatorFactory::~PepperPortAllocatorFactory() {}
-scoped_ptr<protocol::PortAllocatorBase>
-PepperPortAllocatorFactory::CreatePortAllocator() {
- return PepperPortAllocator::Create(instance_);
+scoped_ptr<cricket::PortAllocator>
+PepperPortAllocatorFactory::CreatePortAllocator(
+ scoped_refptr<protocol::TransportContext> transport_context) {
+ return make_scoped_ptr(
+ new PepperPortAllocator(transport_context, pp_instance_));
}
} // namespace remoting
« no previous file with comments | « remoting/client/plugin/pepper_port_allocator.h ('k') | remoting/host/cast_extension.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698