Remove SSL methods from non-SSL base class

For historical and structural reasons, it has been convenient to have several methods which only apply to crypto protocols (SetSNIServerName, GetSSLCertificateCommonName, and IsSessionResumed) present as pure virtual methods in the base SimpleClient interface.  Implementations for which these methods have no meaning simply stub them out.

This is gross, and an impediment to some refactoring I am doing.

So, this CL rectifies the situation.  It removes the base-class methods, and implements these three operations as free functions which use RAII to implement their functionality for TLS and QUIC separately.

Functionally, this CL is a no-op.

N/a test changes only

PiperOrigin-RevId: 319982508
Change-Id: I70762778428f1a826f1d72e8ace77e0c7f9880f1
diff --git a/quic/test_tools/quic_test_client.cc b/quic/test_tools/quic_test_client.cc
index c25bd8e..56dc1ec 100644
--- a/quic/test_tools/quic_test_client.cc
+++ b/quic/test_tools/quic_test_client.cc
@@ -605,10 +605,6 @@
   return client()->connection_error();
 }
 
-MockableQuicClient* QuicTestClient::client() {
-  return client_.get();
-}
-
 const std::string& QuicTestClient::cert_common_name() const {
   return reinterpret_cast<RecordingProofVerifier*>(client_->proof_verifier())
       ->common_name();
diff --git a/quic/test_tools/quic_test_client.h b/quic/test_tools/quic_test_client.h
index a7c9d6a..1bd0247 100644
--- a/quic/test_tools/quic_test_client.h
+++ b/quic/test_tools/quic_test_client.h
@@ -271,7 +271,8 @@
   QuicRstStreamErrorCode stream_error() { return stream_error_; }
   QuicErrorCode connection_error();
 
-  MockableQuicClient* client();
+  MockableQuicClient* client() { return client_.get(); }
+  const MockableQuicClient* client() const { return client_.get(); }
 
   // cert_common_name returns the common name value of the server's certificate,
   // or the empty std::string if no certificate was presented.
diff --git a/quic/tools/quic_client_base.cc b/quic/tools/quic_client_base.cc
index efd668f..f0def98 100644
--- a/quic/tools/quic_client_base.cc
+++ b/quic/tools/quic_client_base.cc
@@ -226,6 +226,10 @@
   return session_.get();
 }
 
+const QuicSession* QuicClientBase::session() const {
+  return session_.get();
+}
+
 QuicClientBase::NetworkHelper* QuicClientBase::network_helper() {
   return network_helper_.get();
 }
diff --git a/quic/tools/quic_client_base.h b/quic/tools/quic_client_base.h
index 842afc6..ff600ae 100644
--- a/quic/tools/quic_client_base.h
+++ b/quic/tools/quic_client_base.h
@@ -125,6 +125,7 @@
   bool ChangeEphemeralPort();
 
   QuicSession* session();
+  const QuicSession* session() const;
 
   bool connected() const;
   bool goaway_received() const;
diff --git a/quic/tools/quic_spdy_client_base.cc b/quic/tools/quic_spdy_client_base.cc
index 1bb01ef..6ee3ad6 100644
--- a/quic/tools/quic_spdy_client_base.cc
+++ b/quic/tools/quic_spdy_client_base.cc
@@ -62,6 +62,10 @@
   return static_cast<QuicSpdyClientSession*>(QuicClientBase::session());
 }
 
+const QuicSpdyClientSession* QuicSpdyClientBase::client_session() const {
+  return static_cast<const QuicSpdyClientSession*>(QuicClientBase::session());
+}
+
 void QuicSpdyClientBase::InitializeSession() {
   client_session()->Initialize();
   client_session()->CryptoConnect();
diff --git a/quic/tools/quic_spdy_client_base.h b/quic/tools/quic_spdy_client_base.h
index a6d4f86..874aa2d 100644
--- a/quic/tools/quic_spdy_client_base.h
+++ b/quic/tools/quic_spdy_client_base.h
@@ -104,6 +104,7 @@
   // Returns a the session used for this client downcasted to a
   // QuicSpdyClientSession.
   QuicSpdyClientSession* client_session();
+  const QuicSpdyClientSession* client_session() const;
 
   QuicClientPushPromiseIndex* push_promise_index() {
     return &push_promise_index_;