Index: blimp/engine/session/blimp_engine_session.cc |
diff --git a/blimp/engine/session/blimp_engine_session.cc b/blimp/engine/session/blimp_engine_session.cc |
index f4708eaa662112f412ca279c403249b77864a06e..e91e29de90b96c4650c57cbe467eeefbfec746d5 100644 |
--- a/blimp/engine/session/blimp_engine_session.cc |
+++ b/blimp/engine/session/blimp_engine_session.cc |
@@ -99,6 +99,21 @@ base::Closure QuitCurrentMessageLoopClosure() { |
base::MessageLoop::QuitWhenIdleClosure()); |
} |
+EngineConnectionManager::EngineTransportType GetTransportType() { |
+ const std::string kTcpTransport = "tcp"; |
Kevin M
2016/10/25 18:49:22
Move these into the anonymous namespace and use co
perumaal
2016/10/25 23:02:39
Done.
|
+ const std::string kGrpcTransport = "grpc"; |
+ const auto transport_parsed = |
Kevin M
2016/10/25 18:49:22
std::string
perumaal
2016/10/25 23:02:39
Done.
|
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
+ kEngineTransport); |
+ if (transport_parsed == kTcpTransport || transport_parsed.empty()) { |
+ return EngineConnectionManager::EngineTransportType::TCP; |
+ } else if (transport_parsed == kGrpcTransport) { |
+ return EngineConnectionManager::EngineTransportType::GRPC; |
+ } |
+ LOG(FATAL) << "--engine-transport must either be empty or one of tcp, grpc."; |
Kevin M
2016/10/25 18:49:22
Log the flag names using constants, since we got '
perumaal
2016/10/25 23:02:39
Done.
|
+ return EngineConnectionManager::EngineTransportType::TCP; |
+} |
+ |
net::IPAddress GetListeningAddress() { |
if (base::CommandLine::ForCurrentProcess()->HasSwitch(kAllowNonLocalhost)) { |
return net::IPAddress::IPv4AllZeros(); |
@@ -139,7 +154,7 @@ class EngineNetworkComponents : public ConnectionHandler, |
base::WeakPtr<BlobChannelSender> blob_channel_sender, |
const std::string& client_token); |
- uint16_t GetPortForTesting() { return port_; } |
+ uint16_t GetPortForTesting() { return GetListeningPort(); } |
Garrett Casto
2016/10/25 18:33:50
I'm surprised that this doesn't break the browser_
Kevin M
2016/10/25 18:49:22
Why make this change? For the e2e tests, this meth
perumaal
2016/10/25 23:02:39
I wanted to minimize the usage of port numbers as
|
BrowserConnectionHandler* connection_handler() { |
return &connection_handler_; |
@@ -159,7 +174,6 @@ class EngineNetworkComponents : public ConnectionHandler, |
void OnConnectionError(int error) override; |
net::NetLog* net_log_; |
- uint16_t port_ = 0; |
BrowserConnectionHandler connection_handler_; |
std::unique_ptr<EngineAuthenticationHandler> authentication_handler_; |
@@ -189,20 +203,15 @@ void EngineNetworkComponents::Initialize( |
base::MakeUnique<EngineAuthenticationHandler>(this, client_token); |
// Plumb unauthenticated connections to |authentication_handler_|. |
- connection_manager_ = |
- base::MakeUnique<EngineConnectionManager>(authentication_handler_.get()); |
+ connection_manager_ = base::MakeUnique<EngineConnectionManager>( |
+ authentication_handler_.get(), net_log_); |
blob_channel_service_ = |
base::MakeUnique<BlobChannelService>(blob_channel_sender, ui_task_runner); |
// Adds BlimpTransports to connection_manager_. |
net::IPEndPoint address(GetListeningAddress(), GetListeningPort()); |
- TCPEngineTransport* transport = new TCPEngineTransport(address, net_log_); |
- connection_manager_->AddTransport(base::WrapUnique(transport)); |
- |
- transport->GetLocalAddress(&address); |
- port_ = address.port(); |
- DVLOG(1) << "Engine port #: " << port_; |
+ connection_manager_->ConnectTransport(address, GetTransportType()); |
} |
void EngineNetworkComponents::HandleConnection( |