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

Unified Diff: blimp/engine/session/blimp_engine_session.cc

Issue 2439403003: Refactor BlimpConnection to TCPConnection (Closed)
Patch Set: Sync merge Created 4 years, 2 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
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(

Powered by Google App Engine
This is Rietveld 408576698