Remove legacy version of the control channel protocol.

All current versions of host and client support capabilities, we
no longer need to keep support for older versions.

Review URL: https://codereview.chromium.org/565263006

Cr-Commit-Position: refs/heads/master@{#294752}
diff --git a/remoting/client/chromoting_client.cc b/remoting/client/chromoting_client.cc
index 590902a..2270796 100644
--- a/remoting/client/chromoting_client.cc
+++ b/remoting/client/chromoting_client.cc
@@ -151,27 +151,17 @@
   if (connection_.config().is_audio_enabled())
     audio_decode_scheduler_->Initialize(connection_.config());
 
-  // Do not negotiate capabilities with the host if the host does not support
-  // them.
-  if (!connection_.config().SupportsCapabilities()) {
-    VLOG(1) << "The host does not support any capabilities.";
-
-    host_capabilities_received_ = true;
-    user_interface_->SetCapabilities(host_capabilities_);
-  }
 }
 
 void ChromotingClient::OnChannelsConnected() {
   DCHECK(task_runner_->BelongsToCurrentThread());
 
   // Negotiate capabilities with the host.
-  if (connection_.config().SupportsCapabilities()) {
-    VLOG(1) << "Client capabilities: " << local_capabilities_;
+  VLOG(1) << "Client capabilities: " << local_capabilities_;
 
-    protocol::Capabilities capabilities;
-    capabilities.set_capabilities(local_capabilities_);
-    connection_.host_stub()->SetCapabilities(capabilities);
-  }
+  protocol::Capabilities capabilities;
+  capabilities.set_capabilities(local_capabilities_);
+  connection_.host_stub()->SetCapabilities(capabilities);
 }
 
 }  // namespace remoting
diff --git a/remoting/host/client_session.cc b/remoting/host/client_session.cc
index e594b10..3fcfeb3 100644
--- a/remoting/host/client_session.cc
+++ b/remoting/host/client_session.cc
@@ -176,13 +176,6 @@
     const protocol::Capabilities& capabilities) {
   DCHECK(CalledOnValidThread());
 
-  // The client should not send protocol::Capabilities if it is not supported by
-  // the config channel.
-  if (!connection_->session()->config().SupportsCapabilities()) {
-    LOG(ERROR) << "Unexpected protocol::Capabilities has been received.";
-    return;
-  }
-
   // Ignore all the messages but the 1st one.
   if (client_capabilities_) {
     LOG(WARNING) << "protocol::Capabilities has been received already.";
@@ -288,16 +281,10 @@
   }
 
   // Collate the set of capabilities to offer the client, if it supports them.
-  if (connection_->session()->config().SupportsCapabilities()) {
-    host_capabilities_ = desktop_environment_->GetCapabilities();
-    if (!host_capabilities_.empty()) {
-      host_capabilities_.append(" ");
-    }
-    host_capabilities_.append(extension_manager_->GetCapabilities());
-  } else {
-    VLOG(1) << "The client does not support any capabilities.";
-    desktop_environment_->SetCapabilities(std::string());
-  }
+  host_capabilities_ = desktop_environment_->GetCapabilities();
+  if (!host_capabilities_.empty())
+    host_capabilities_.append(" ");
+  host_capabilities_.append(extension_manager_->GetCapabilities());
 
   // Create the object that controls the screen resolution.
   screen_controls_ = desktop_environment_->CreateScreenControls();
@@ -332,13 +319,11 @@
   DCHECK_EQ(connection_.get(), connection);
 
   // Negotiate capabilities with the client.
-  if (connection_->session()->config().SupportsCapabilities()) {
-    VLOG(1) << "Host capabilities: " << host_capabilities_;
+  VLOG(1) << "Host capabilities: " << host_capabilities_;
 
-    protocol::Capabilities capabilities;
-    capabilities.set_capabilities(host_capabilities_);
-    connection_->client_stub()->SetCapabilities(capabilities);
-  }
+  protocol::Capabilities capabilities;
+  capabilities.set_capabilities(host_capabilities_);
+  connection_->client_stub()->SetCapabilities(capabilities);
 
   // Start the event executor.
   input_injector_->Start(CreateClipboardProxy());
diff --git a/remoting/protocol/session_config.cc b/remoting/protocol/session_config.cc
index 3f2c911..0693627 100644
--- a/remoting/protocol/session_config.cc
+++ b/remoting/protocol/session_config.cc
@@ -10,10 +10,7 @@
 namespace protocol {
 
 const int kDefaultStreamVersion = 2;
-
-// The control channel version that supports the "capabilities" message.
 const int kControlStreamVersion = 3;
-const int kControlStreamVersionNoCapabilities = kDefaultStreamVersion;
 
 ChannelConfig ChannelConfig::None() {
   return ChannelConfig();
@@ -41,10 +38,6 @@
 SessionConfig::SessionConfig() {
 }
 
-bool SessionConfig::SupportsCapabilities() const {
-  return control_config_.version >= kControlStreamVersion;
-}
-
 // static
 SessionConfig SessionConfig::ForTest() {
   SessionConfig result;
@@ -180,10 +173,6 @@
       ChannelConfig(ChannelConfig::TRANSPORT_MUX_STREAM,
                     kControlStreamVersion,
                     ChannelConfig::CODEC_UNDEFINED));
-  result->mutable_control_configs()->push_back(
-      ChannelConfig(ChannelConfig::TRANSPORT_MUX_STREAM,
-                    kControlStreamVersionNoCapabilities,
-                    ChannelConfig::CODEC_UNDEFINED));
 
   // Event channel.
   result->mutable_event_configs()->push_back(
diff --git a/remoting/protocol/session_config.h b/remoting/protocol/session_config.h
index ae1ab5e..4246228 100644
--- a/remoting/protocol/session_config.h
+++ b/remoting/protocol/session_config.h
@@ -83,9 +83,6 @@
     return audio_config_.transport != ChannelConfig::TRANSPORT_NONE;
   }
 
-  // Returns true if the control channel supports capabilities.
-  bool SupportsCapabilities() const;
-
   // Returns a suitable session configuration for use in tests.
   static SessionConfig ForTest();