diff options
author | sergeyu <sergeyu@chromium.org> | 2015-12-16 14:45:00 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-16 22:46:17 +0000 |
commit | 86030f38b4a7be9418c50da7e83ff55749438dba (patch) | |
tree | a885f9e90179ee8ae6ad27c651bd2ddb704124da /remoting/test | |
parent | 3b7c3e37ec089dc5179359a52a7b2311285c7f21 (diff) | |
download | chromium_src-86030f38b4a7be9418c50da7e83ff55749438dba.zip chromium_src-86030f38b4a7be9418c50da7e83ff55749438dba.tar.gz chromium_src-86030f38b4a7be9418c50da7e83ff55749438dba.tar.bz2 |
Add TransportContext class.
The new TransportContext is now used to store all parameters required
to initialize Transport objects and is applicable both to IceTransport
and WebrtcTransport. It also allowed to reduce amount of boilerplate
code when passing around these parameters.
BUG=547158
Review URL: https://codereview.chromium.org/1521883006
Cr-Commit-Position: refs/heads/master@{#365649}
Diffstat (limited to 'remoting/test')
-rw-r--r-- | remoting/test/fake_port_allocator.cc | 49 | ||||
-rw-r--r-- | remoting/test/fake_port_allocator.h | 30 | ||||
-rw-r--r-- | remoting/test/protocol_perftest.cc | 53 | ||||
-rw-r--r-- | remoting/test/test_chromoting_client.cc | 17 |
4 files changed, 77 insertions, 72 deletions
diff --git a/remoting/test/fake_port_allocator.cc b/remoting/test/fake_port_allocator.cc index d63243f..972ded5 100644 --- a/remoting/test/fake_port_allocator.cc +++ b/remoting/test/fake_port_allocator.cc @@ -7,6 +7,7 @@ #include "remoting/test/fake_network_dispatcher.h" #include "remoting/test/fake_network_manager.h" #include "remoting/test/fake_socket_factory.h" +#include "third_party/webrtc/p2p/client/basicportallocator.h" namespace remoting { @@ -82,35 +83,10 @@ void FakePortAllocatorSession::SendSessionRequest( } // namespace -// static -scoped_ptr<FakePortAllocator> FakePortAllocator::Create( - scoped_refptr<FakeNetworkDispatcher> fake_network_dispatcher) { - scoped_ptr<FakePacketSocketFactory> socket_factory( - new FakePacketSocketFactory(fake_network_dispatcher.get())); - scoped_ptr<rtc::NetworkManager> network_manager( - new FakeNetworkManager(socket_factory->GetAddress())); - - return make_scoped_ptr( - new FakePortAllocator(network_manager.Pass(), socket_factory.Pass())); -} - -FakePortAllocator::FakePortAllocator( - scoped_ptr<rtc::NetworkManager> network_manager, - scoped_ptr<FakePacketSocketFactory> socket_factory) - : HttpPortAllocatorBase(network_manager.get(), - socket_factory.get(), - std::string()), - network_manager_(network_manager.Pass()), - socket_factory_(socket_factory.Pass()) { - set_flags(cricket::PORTALLOCATOR_DISABLE_TCP | - cricket::PORTALLOCATOR_ENABLE_SHARED_UFRAG | - cricket::PORTALLOCATOR_ENABLE_IPV6 | - cricket::PORTALLOCATOR_DISABLE_STUN | - cricket::PORTALLOCATOR_DISABLE_RELAY); -} - -FakePortAllocator::~FakePortAllocator() { -} +FakePortAllocator::FakePortAllocator(rtc::NetworkManager* network_manager, + FakePacketSocketFactory* socket_factory) + : HttpPortAllocatorBase(network_manager, socket_factory, std::string()) {} +FakePortAllocator::~FakePortAllocator() {} cricket::PortAllocatorSession* FakePortAllocator::CreateSessionInternal( const std::string& content_name, @@ -122,4 +98,19 @@ cricket::PortAllocatorSession* FakePortAllocator::CreateSessionInternal( stun_hosts(), relay_hosts(), relay_token()); } +FakePortAllocatorFactory::FakePortAllocatorFactory( + scoped_refptr<FakeNetworkDispatcher> fake_network_dispatcher) { + socket_factory_.reset( + new FakePacketSocketFactory(fake_network_dispatcher.get())); + network_manager_.reset(new FakeNetworkManager(socket_factory_->GetAddress())); +} + +FakePortAllocatorFactory::~FakePortAllocatorFactory() {} + +scoped_ptr<cricket::HttpPortAllocatorBase> +FakePortAllocatorFactory::CreatePortAllocator() { + return make_scoped_ptr( + new FakePortAllocator(network_manager_.get(), socket_factory_.get())); +} + } // namespace remoting diff --git a/remoting/test/fake_port_allocator.h b/remoting/test/fake_port_allocator.h index af6ec3f8..d848dfd 100644 --- a/remoting/test/fake_port_allocator.h +++ b/remoting/test/fake_port_allocator.h @@ -9,8 +9,13 @@ #include "base/memory/ref_counted.h" #include "base/memory/scoped_ptr.h" +#include "remoting/protocol/port_allocator_factory.h" #include "third_party/webrtc/p2p/client/httpportallocator.h" +namespace rtc { +class NetworkManager; +} // namespace rtc + namespace remoting { class FakeNetworkDispatcher; @@ -18,13 +23,10 @@ class FakePacketSocketFactory; class FakePortAllocator : public cricket::HttpPortAllocatorBase { public: - static scoped_ptr<FakePortAllocator> Create( - scoped_refptr<FakeNetworkDispatcher> fake_network_dispatcher); - + FakePortAllocator(rtc::NetworkManager* network_manager, + FakePacketSocketFactory* socket_factory); ~FakePortAllocator() override; - FakePacketSocketFactory* socket_factory() { return socket_factory_.get(); } - // cricket::BasicPortAllocator overrides. cricket::PortAllocatorSession* CreateSessionInternal( const std::string& content_name, @@ -33,13 +35,25 @@ class FakePortAllocator : public cricket::HttpPortAllocatorBase { const std::string& ice_password) override; private: - FakePortAllocator(scoped_ptr<rtc::NetworkManager> network_manager, - scoped_ptr<FakePacketSocketFactory> socket_factory); + DISALLOW_COPY_AND_ASSIGN(FakePortAllocator); +}; +class FakePortAllocatorFactory : public protocol::PortAllocatorFactory { + public: + FakePortAllocatorFactory( + scoped_refptr<FakeNetworkDispatcher> fake_network_dispatcher); + ~FakePortAllocatorFactory() override; + + FakePacketSocketFactory* socket_factory() { return socket_factory_.get(); } + + // PortAllocatorFactory interface. + scoped_ptr<cricket::HttpPortAllocatorBase> CreatePortAllocator() override; + + private: scoped_ptr<rtc::NetworkManager> network_manager_; scoped_ptr<FakePacketSocketFactory> socket_factory_; - DISALLOW_COPY_AND_ASSIGN(FakePortAllocator); + DISALLOW_COPY_AND_ASSIGN(FakePortAllocatorFactory); }; } // namespace remoting diff --git a/remoting/test/protocol_perftest.cc b/remoting/test/protocol_perftest.cc index 61294da..92cc8fe 100644 --- a/remoting/test/protocol_perftest.cc +++ b/remoting/test/protocol_perftest.cc @@ -22,11 +22,12 @@ #include "remoting/host/chromoting_host.h" #include "remoting/host/chromoting_host_context.h" #include "remoting/host/fake_desktop_environment.h" -#include "remoting/protocol/ice_transport_factory.h" +#include "remoting/protocol/ice_transport.h" #include "remoting/protocol/jingle_session_manager.h" #include "remoting/protocol/me2me_host_authenticator_factory.h" #include "remoting/protocol/negotiating_client_authenticator.h" #include "remoting/protocol/session_config.h" +#include "remoting/protocol/transport_context.h" #include "remoting/protocol/video_frame_pump.h" #include "remoting/signaling/fake_signal_strategy.h" #include "remoting/test/fake_network_dispatcher.h" @@ -224,21 +225,22 @@ class ProtocolPerfTest protocol::NetworkSettings network_settings( protocol::NetworkSettings::NAT_TRAVERSAL_OUTGOING); - scoped_ptr<FakePortAllocator> port_allocator( - FakePortAllocator::Create(fake_network_dispatcher_)); - port_allocator->socket_factory()->SetBandwidth(GetParam().bandwidth, - GetParam().max_buffers); - port_allocator->socket_factory()->SetLatency(GetParam().latency_average, - GetParam().latency_stddev); - port_allocator->socket_factory()->set_out_of_order_rate( + scoped_ptr<FakePortAllocatorFactory> port_allocator_factory( + new FakePortAllocatorFactory(fake_network_dispatcher_)); + port_allocator_factory->socket_factory()->SetBandwidth( + GetParam().bandwidth, GetParam().max_buffers); + port_allocator_factory->socket_factory()->SetLatency( + GetParam().latency_average, GetParam().latency_stddev); + port_allocator_factory->socket_factory()->set_out_of_order_rate( GetParam().out_of_order_rate); - scoped_ptr<protocol::TransportFactory> host_transport_factory( - new protocol::IceTransportFactory( - host_signaling_.get(), port_allocator.Pass(), network_settings, - protocol::TransportRole::SERVER)); + scoped_refptr<protocol::TransportContext> transport_context( + new protocol::TransportContext( + host_signaling_.get(), port_allocator_factory.Pass(), + network_settings, protocol::TransportRole::SERVER)); scoped_ptr<protocol::SessionManager> session_manager( - new protocol::JingleSessionManager(host_transport_factory.Pass())); + new protocol::JingleSessionManager(make_scoped_ptr( + new protocol::IceTransportFactory(transport_context)))); session_manager->set_protocol_config(protocol_config_->Clone()); // Encoder runs on a separate thread, main thread is used for everything @@ -267,7 +269,6 @@ class ProtocolPerfTest scoped_refptr<RsaKeyPair> key_pair = RsaKeyPair::FromString(key_base64); ASSERT_TRUE(key_pair.get()); - protocol::SharedSecretHash host_secret; host_secret.hash_function = protocol::AuthenticationMethod::NONE; host_secret.value = "123456"; @@ -294,18 +295,18 @@ class ProtocolPerfTest client_context_.reset( new ClientContext(base::ThreadTaskRunnerHandle::Get())); - scoped_ptr<FakePortAllocator> port_allocator( - FakePortAllocator::Create(fake_network_dispatcher_)); - port_allocator->socket_factory()->SetBandwidth(GetParam().bandwidth, - GetParam().max_buffers); - port_allocator->socket_factory()->SetLatency(GetParam().latency_average, - GetParam().latency_stddev); - port_allocator->socket_factory()->set_out_of_order_rate( + scoped_ptr<FakePortAllocatorFactory> port_allocator_factory( + new FakePortAllocatorFactory(fake_network_dispatcher_)); + port_allocator_factory->socket_factory()->SetBandwidth( + GetParam().bandwidth, GetParam().max_buffers); + port_allocator_factory->socket_factory()->SetLatency( + GetParam().latency_average, GetParam().latency_stddev); + port_allocator_factory->socket_factory()->set_out_of_order_rate( GetParam().out_of_order_rate); - scoped_ptr<protocol::TransportFactory> client_transport_factory( - new protocol::IceTransportFactory( - client_signaling_.get(), port_allocator.Pass(), network_settings, - protocol::TransportRole::CLIENT)); + scoped_refptr<protocol::TransportContext> transport_context( + new protocol::TransportContext( + host_signaling_.get(), port_allocator_factory.Pass(), + network_settings, protocol::TransportRole::SERVER)); std::vector<protocol::AuthenticationMethod> auth_methods; auth_methods.push_back(protocol::AuthenticationMethod::Spake2( @@ -322,7 +323,7 @@ class ProtocolPerfTest new ChromotingClient(client_context_.get(), this, this, nullptr)); client_->set_protocol_config(protocol_config_->Clone()); client_->Start(client_signaling_.get(), client_authenticator.Pass(), - client_transport_factory.Pass(), kHostJid, std::string()); + transport_context, kHostJid, std::string()); } void FetchPin( diff --git a/remoting/test/test_chromoting_client.cc b/remoting/test/test_chromoting_client.cc index e1beedf..da19a6d 100644 --- a/remoting/test/test_chromoting_client.cc +++ b/remoting/test/test_chromoting_client.cc @@ -19,11 +19,11 @@ #include "remoting/client/token_fetcher_proxy.h" #include "remoting/protocol/chromium_port_allocator.h" #include "remoting/protocol/host_stub.h" -#include "remoting/protocol/ice_transport_factory.h" #include "remoting/protocol/negotiating_client_authenticator.h" #include "remoting/protocol/network_settings.h" #include "remoting/protocol/session_config.h" #include "remoting/protocol/third_party_client_authenticator.h" +#include "remoting/protocol/transport_context.h" #include "remoting/signaling/xmpp_signal_strategy.h" #include "remoting/test/connection_setup_info.h" #include "remoting/test/test_video_renderer.h" @@ -122,14 +122,13 @@ void TestChromotingClient::StartConnection( protocol::NetworkSettings network_settings( protocol::NetworkSettings::NAT_TRAVERSAL_FULL); - scoped_ptr<protocol::ChromiumPortAllocator> port_allocator( - protocol::ChromiumPortAllocator::Create(request_context_getter, - network_settings)); + scoped_ptr<protocol::ChromiumPortAllocatorFactory> port_allocator_factory( + new protocol::ChromiumPortAllocatorFactory(request_context_getter)); - scoped_ptr<protocol::TransportFactory> transport_factory( - new protocol::IceTransportFactory( - signal_strategy_.get(), port_allocator.Pass(), network_settings, - protocol::TransportRole::CLIENT)); + scoped_refptr<protocol::TransportContext> transport_context( + new protocol::TransportContext( + signal_strategy_.get(), port_allocator_factory.Pass(), + network_settings, protocol::TransportRole::CLIENT)); scoped_ptr<protocol::ThirdPartyClientAuthenticator::TokenFetcher> token_fetcher(new TokenFetcherProxy( @@ -153,7 +152,7 @@ void TestChromotingClient::StartConnection( connection_setup_info.auth_methods)); chromoting_client_->Start( - signal_strategy_.get(), authenticator.Pass(), transport_factory.Pass(), + signal_strategy_.get(), authenticator.Pass(), transport_context, connection_setup_info.host_jid, connection_setup_info.capabilities); } |