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

Unified Diff: net/socket/ssl_client_socket_unittest.cc

Issue 981723008: Unwind the SSL connection holdback experiment and remove related code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rename & reformat Created 5 years, 9 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
« no previous file with comments | « net/socket/ssl_client_socket_pool_unittest.cc ('k') | net/socket/ssl_session_cache_openssl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/socket/ssl_client_socket_unittest.cc
diff --git a/net/socket/ssl_client_socket_unittest.cc b/net/socket/ssl_client_socket_unittest.cc
index 96435c96cc83d7cff052c84ac761f0f81f2e2717..7a9ce5e372b0803f3937dd0d92a6aad7d8fb8344 100644
--- a/net/socket/ssl_client_socket_unittest.cc
+++ b/net/socket/ssl_client_socket_unittest.cc
@@ -370,9 +370,6 @@ class FakeBlockingStreamSocket : public WrappedStreamSocket {
// Waits for the blocked Write() call to be scheduled.
void WaitForWrite();
- // Returns the wrapped stream socket.
- StreamSocket* transport() { return transport_.get(); }
-
private:
// Handles completion from the underlying transport read.
void OnReadCompleted(int result);
@@ -680,15 +677,12 @@ class SSLClientSocketTest : public PlatformTest {
SSLClientSocketTest()
: socket_factory_(ClientSocketFactory::GetDefaultFactory()),
cert_verifier_(new MockCertVerifier),
- transport_security_state_(new TransportSecurityState),
- ran_handshake_completion_callback_(false) {
+ transport_security_state_(new TransportSecurityState) {
cert_verifier_->set_default_result(OK);
context_.cert_verifier = cert_verifier_.get();
context_.transport_security_state = transport_security_state_.get();
}
- void RecordCompletedHandshake() { ran_handshake_completion_callback_ = true; }
-
protected:
// The address of the spawned test server, after calling StartTestServer().
const AddressList& addr() const { return addr_; }
@@ -769,7 +763,6 @@ class SSLClientSocketTest : public PlatformTest {
SSLClientSocketContext context_;
scoped_ptr<SSLClientSocket> sock_;
CapturingNetLog log_;
- bool ran_handshake_completion_callback_;
private:
scoped_ptr<StreamSocket> transport_;
@@ -822,11 +815,6 @@ class SSLClientSocketCertRequestInfoTest : public SSLClientSocketTest {
};
class SSLClientSocketFalseStartTest : public SSLClientSocketTest {
- public:
- SSLClientSocketFalseStartTest()
- : monitor_handshake_callback_(false),
- fail_handshake_after_false_start_(false) {}
-
protected:
// Creates an SSLClientSocket with |client_config| attached to a
// FakeBlockingStreamSocket, returning both in |*out_raw_transport| and
@@ -848,11 +836,8 @@ class SSLClientSocketFalseStartTest : public SSLClientSocketTest {
scoped_ptr<SSLClientSocket>* out_sock) {
CHECK(test_server());
- scoped_ptr<StreamSocket> real_transport(scoped_ptr<StreamSocket>(
- new TCPClientSocket(addr(), NULL, NetLog::Source())));
- real_transport.reset(
- new SynchronousErrorStreamSocket(real_transport.Pass()));
-
+ scoped_ptr<StreamSocket> real_transport(
+ new TCPClientSocket(addr(), NULL, NetLog::Source()));
scoped_ptr<FakeBlockingStreamSocket> transport(
new FakeBlockingStreamSocket(real_transport.Pass()));
int rv = callback->GetResult(transport->Connect(callback->callback()));
@@ -862,12 +847,6 @@ class SSLClientSocketFalseStartTest : public SSLClientSocketTest {
scoped_ptr<SSLClientSocket> sock = CreateSSLClientSocket(
transport.Pass(), test_server()->host_port_pair(), client_config);
- if (monitor_handshake_callback_) {
- sock->SetHandshakeCompletionCallback(
- base::Bind(&SSLClientSocketTest::RecordCompletedHandshake,
- base::Unretained(this)));
- }
-
// Connect. Stop before the client processes the first server leg
// (ServerHello, etc.)
raw_transport->BlockReadResult();
@@ -883,12 +862,6 @@ class SSLClientSocketFalseStartTest : public SSLClientSocketTest {
raw_transport->UnblockReadResult();
raw_transport->WaitForWrite();
- if (fail_handshake_after_false_start_) {
- SynchronousErrorStreamSocket* error_socket =
- static_cast<SynchronousErrorStreamSocket*>(
- raw_transport->transport());
- error_socket->SetNextReadError(ERR_CONNECTION_RESET);
- }
// And, finally, release that and block the next server leg
// (ChangeCipherSpec, Finished).
raw_transport->BlockReadResult();
@@ -906,7 +879,6 @@ class SSLClientSocketFalseStartTest : public SSLClientSocketTest {
TestCompletionCallback callback;
FakeBlockingStreamSocket* raw_transport = NULL;
scoped_ptr<SSLClientSocket> sock;
-
ASSERT_NO_FATAL_FAILURE(CreateAndConnectUntilServerFinishedReceived(
client_config, &callback, &raw_transport, &sock));
@@ -941,10 +913,7 @@ class SSLClientSocketFalseStartTest : public SSLClientSocketTest {
// After releasing reads, the connection proceeds.
raw_transport->UnblockReadResult();
rv = callback.GetResult(rv);
- if (fail_handshake_after_false_start_)
- EXPECT_EQ(ERR_CONNECTION_RESET, rv);
- else
- EXPECT_LT(0, rv);
+ EXPECT_LT(0, rv);
} else {
// False Start is not enabled, so the handshake will not complete because
// the server second leg is blocked.
@@ -952,13 +921,6 @@ class SSLClientSocketFalseStartTest : public SSLClientSocketTest {
EXPECT_FALSE(callback.have_result());
}
}
-
- // Indicates that the socket's handshake completion callback should
- // be monitored.
- bool monitor_handshake_callback_;
- // Indicates that this test's handshake should fail after the client
- // "finished" message is sent.
- bool fail_handshake_after_false_start_;
};
class SSLClientSocketChannelIDTest : public SSLClientSocketTest {
@@ -2886,162 +2848,6 @@ TEST_F(SSLClientSocketTest, FallbackShardSessionCache) {
SSLConnectionStatusToVersion(ssl_info.connection_status));
}
-#if defined(USE_OPENSSL)
-
-TEST_F(SSLClientSocketTest, HandshakeCallbackIsRun_WithFailure) {
- SpawnedTestServer test_server(SpawnedTestServer::TYPE_HTTPS,
- SpawnedTestServer::kLocalhost,
- base::FilePath());
- ASSERT_TRUE(test_server.Start());
-
- AddressList addr;
- ASSERT_TRUE(test_server.GetAddressList(&addr));
-
- TestCompletionCallback callback;
- scoped_ptr<StreamSocket> real_transport(
- new TCPClientSocket(addr, NULL, NetLog::Source()));
- scoped_ptr<SynchronousErrorStreamSocket> transport(
- new SynchronousErrorStreamSocket(real_transport.Pass()));
- int rv = callback.GetResult(transport->Connect(callback.callback()));
- EXPECT_EQ(OK, rv);
-
- // Disable TLS False Start to avoid handshake non-determinism.
- SSLConfig ssl_config;
- ssl_config.false_start_enabled = false;
-
- SynchronousErrorStreamSocket* raw_transport = transport.get();
- scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
- transport.Pass(), test_server.host_port_pair(), ssl_config));
-
- sock->SetHandshakeCompletionCallback(base::Bind(
- &SSLClientSocketTest::RecordCompletedHandshake, base::Unretained(this)));
-
- raw_transport->SetNextWriteError(ERR_CONNECTION_RESET);
-
- rv = callback.GetResult(sock->Connect(callback.callback()));
- EXPECT_EQ(ERR_CONNECTION_RESET, rv);
- EXPECT_FALSE(sock->IsConnected());
-
- EXPECT_TRUE(ran_handshake_completion_callback_);
-}
-
-// Tests that the completion callback is run when an SSL connection
-// completes successfully.
-TEST_F(SSLClientSocketTest, HandshakeCallbackIsRun_WithSuccess) {
- SpawnedTestServer test_server(SpawnedTestServer::TYPE_HTTPS,
- SpawnedTestServer::kLocalhost,
- base::FilePath());
- ASSERT_TRUE(test_server.Start());
-
- AddressList addr;
- ASSERT_TRUE(test_server.GetAddressList(&addr));
-
- scoped_ptr<StreamSocket> transport(
- new TCPClientSocket(addr, NULL, NetLog::Source()));
-
- TestCompletionCallback callback;
- int rv = transport->Connect(callback.callback());
- if (rv == ERR_IO_PENDING)
- rv = callback.WaitForResult();
- EXPECT_EQ(OK, rv);
-
- SSLConfig ssl_config;
- ssl_config.false_start_enabled = false;
-
- scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
- transport.Pass(), test_server.host_port_pair(), ssl_config));
-
- sock->SetHandshakeCompletionCallback(base::Bind(
- &SSLClientSocketTest::RecordCompletedHandshake, base::Unretained(this)));
-
- rv = callback.GetResult(sock->Connect(callback.callback()));
-
- EXPECT_EQ(OK, rv);
- EXPECT_TRUE(sock->IsConnected());
- EXPECT_TRUE(ran_handshake_completion_callback_);
-}
-
-// Tests that the completion callback is run with a server that doesn't cache
-// sessions.
-TEST_F(SSLClientSocketTest, HandshakeCallbackIsRun_WithDisabledSessionCache) {
- SpawnedTestServer::SSLOptions ssl_options;
- ssl_options.disable_session_cache = true;
- SpawnedTestServer test_server(
- SpawnedTestServer::TYPE_HTTPS, ssl_options, base::FilePath());
- ASSERT_TRUE(test_server.Start());
-
- AddressList addr;
- ASSERT_TRUE(test_server.GetAddressList(&addr));
-
- scoped_ptr<StreamSocket> transport(
- new TCPClientSocket(addr, NULL, NetLog::Source()));
-
- TestCompletionCallback callback;
- int rv = transport->Connect(callback.callback());
- if (rv == ERR_IO_PENDING)
- rv = callback.WaitForResult();
- EXPECT_EQ(OK, rv);
-
- SSLConfig ssl_config;
- ssl_config.false_start_enabled = false;
-
- scoped_ptr<SSLClientSocket> sock(CreateSSLClientSocket(
- transport.Pass(), test_server.host_port_pair(), ssl_config));
-
- sock->SetHandshakeCompletionCallback(base::Bind(
- &SSLClientSocketTest::RecordCompletedHandshake, base::Unretained(this)));
-
- rv = callback.GetResult(sock->Connect(callback.callback()));
-
- EXPECT_EQ(OK, rv);
- EXPECT_TRUE(sock->IsConnected());
- EXPECT_TRUE(ran_handshake_completion_callback_);
-}
-
-TEST_F(SSLClientSocketFalseStartTest,
- HandshakeCallbackIsRun_WithFalseStartFailure) {
- if (!SupportsAESGCM()) {
- LOG(WARNING) << "Skipping test because AES-GCM is not supported.";
- return;
- }
-
- // False Start requires NPN and a forward-secret cipher suite.
- SpawnedTestServer::SSLOptions server_options;
- server_options.key_exchanges =
- SpawnedTestServer::SSLOptions::KEY_EXCHANGE_DHE_RSA;
- server_options.bulk_ciphers =
- SpawnedTestServer::SSLOptions::BULK_CIPHER_AES128GCM;
- server_options.enable_npn = true;
- SSLConfig client_config;
- client_config.next_protos.push_back(kProtoHTTP11);
- monitor_handshake_callback_ = true;
- fail_handshake_after_false_start_ = true;
- ASSERT_NO_FATAL_FAILURE(TestFalseStart(server_options, client_config, true));
- ASSERT_TRUE(ran_handshake_completion_callback_);
-}
-
-TEST_F(SSLClientSocketFalseStartTest,
- HandshakeCallbackIsRun_WithFalseStartSuccess) {
- if (!SupportsAESGCM()) {
- LOG(WARNING) << "Skipping test because AES-GCM is not supported.";
- return;
- }
-
- // False Start requires NPN and a forward-secret cipher suite.
- SpawnedTestServer::SSLOptions server_options;
- server_options.key_exchanges =
- SpawnedTestServer::SSLOptions::KEY_EXCHANGE_DHE_RSA;
- server_options.bulk_ciphers =
- SpawnedTestServer::SSLOptions::BULK_CIPHER_AES128GCM;
- server_options.enable_npn = true;
- SSLConfig client_config;
- client_config.next_protos.push_back(kProtoHTTP11);
- monitor_handshake_callback_ = true;
- ASSERT_NO_FATAL_FAILURE(TestFalseStart(server_options, client_config, true));
- ASSERT_TRUE(ran_handshake_completion_callback_);
-}
-#endif // defined(USE_OPENSSL)
-
TEST_F(SSLClientSocketFalseStartTest, FalseStartEnabled) {
if (!SupportsAESGCM()) {
LOG(WARNING) << "Skipping test because AES-GCM is not supported.";
« no previous file with comments | « net/socket/ssl_client_socket_pool_unittest.cc ('k') | net/socket/ssl_session_cache_openssl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698