Fix crash bug in new SSLClientSocketPool.
We also need to push additional error state out of the SSLClientSocketPool on a ERR_SSL_CLIENT_AUTH_CERT_NEEDED error.

BUG=49197
TEST=no crash when visiting https://foafssl.org/srv/idp?authreqissuer=http://foaf.me/index.php

Review URL: http://codereview.chromium.org/2827053

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52693 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/socket/client_socket_pool_base_unittest.cc b/net/socket/client_socket_pool_base_unittest.cc
index 9686794..55f1949 100644
--- a/net/socket/client_socket_pool_base_unittest.cc
+++ b/net/socket/client_socket_pool_base_unittest.cc
@@ -155,8 +155,9 @@
     if (store_additional_error_state_) {
       // Set all of the additional error state fields in some way.
       handle->set_is_ssl_error(true);
-      scoped_refptr<HttpResponseHeaders> headers(new HttpResponseHeaders(""));
-      handle->set_tunnel_auth_response_info(headers, NULL);
+      HttpResponseInfo info;
+      info.headers = new HttpResponseHeaders("");
+      handle->set_ssl_error_response_info(info);
     }
   }
 
@@ -626,14 +627,15 @@
   TestSocketRequest req(&request_order_, &completion_count_);
   // Set the additional error state members to ensure that they get cleared.
   req.handle()->set_is_ssl_error(true);
-  scoped_refptr<HttpResponseHeaders> headers(new HttpResponseHeaders(""));
-  req.handle()->set_tunnel_auth_response_info(headers, NULL);
+  HttpResponseInfo info;
+  info.headers = new HttpResponseHeaders("");
+  req.handle()->set_ssl_error_response_info(info);
   EXPECT_EQ(ERR_CONNECTION_FAILED, req.handle()->Init("a", params_,
                                                       kDefaultPriority, &req,
                                                       pool_, log.bound()));
   EXPECT_FALSE(req.handle()->socket());
   EXPECT_FALSE(req.handle()->is_ssl_error());
-  EXPECT_TRUE(req.handle()->tunnel_auth_response_info().headers.get() == NULL);
+  EXPECT_TRUE(req.handle()->ssl_error_response_info().headers.get() == NULL);
 
   EXPECT_EQ(3u, log.entries().size());
   EXPECT_TRUE(LogContainsBeginEvent(
@@ -1386,14 +1388,15 @@
   CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
   // Set the additional error state members to ensure that they get cleared.
   req.handle()->set_is_ssl_error(true);
-  scoped_refptr<HttpResponseHeaders> headers(new HttpResponseHeaders(""));
-  req.handle()->set_tunnel_auth_response_info(headers, NULL);
+  HttpResponseInfo info;
+  info.headers = new HttpResponseHeaders("");
+  req.handle()->set_ssl_error_response_info(info);
   EXPECT_EQ(ERR_IO_PENDING, req.handle()->Init("a", params_, kDefaultPriority,
                                                &req, pool_, log.bound()));
   EXPECT_EQ(LOAD_STATE_CONNECTING, pool_->GetLoadState("a", req.handle()));
   EXPECT_EQ(ERR_CONNECTION_FAILED, req.WaitForResult());
   EXPECT_FALSE(req.handle()->is_ssl_error());
-  EXPECT_TRUE(req.handle()->tunnel_auth_response_info().headers.get() == NULL);
+  EXPECT_TRUE(req.handle()->ssl_error_response_info().headers.get() == NULL);
 
   EXPECT_EQ(3u, log.entries().size());
   EXPECT_TRUE(LogContainsBeginEvent(
@@ -1598,7 +1601,7 @@
   EXPECT_FALSE(req.handle()->is_initialized());
   EXPECT_FALSE(req.handle()->socket());
   EXPECT_TRUE(req.handle()->is_ssl_error());
-  EXPECT_FALSE(req.handle()->tunnel_auth_response_info().headers.get() == NULL);
+  EXPECT_FALSE(req.handle()->ssl_error_response_info().headers.get() == NULL);
   req.handle()->Reset();
 }
 
@@ -1615,7 +1618,7 @@
   EXPECT_FALSE(req.handle()->is_initialized());
   EXPECT_FALSE(req.handle()->socket());
   EXPECT_TRUE(req.handle()->is_ssl_error());
-  EXPECT_FALSE(req.handle()->tunnel_auth_response_info().headers.get() == NULL);
+  EXPECT_FALSE(req.handle()->ssl_error_response_info().headers.get() == NULL);
   req.handle()->Reset();
 }
 
@@ -1861,7 +1864,7 @@
   EXPECT_FALSE(req.handle()->is_initialized());
   EXPECT_FALSE(req.handle()->socket());
   EXPECT_TRUE(req.handle()->is_ssl_error());
-  EXPECT_FALSE(req.handle()->tunnel_auth_response_info().headers.get() == NULL);
+  EXPECT_FALSE(req.handle()->ssl_error_response_info().headers.get() == NULL);
 }
 
 // http://crbug.com/44724 regression test.