| Index: net/socket/ssl_client_socket_nss.cc
|
| diff --git a/net/socket/ssl_client_socket_nss.cc b/net/socket/ssl_client_socket_nss.cc
|
| index a7821b2fe4fca6214e1119c2f1f35bd5d8ae02c8..31a9b8d8379e31bbb6f8a3f16c9950794f23d7d3 100644
|
| --- a/net/socket/ssl_client_socket_nss.cc
|
| +++ b/net/socket/ssl_client_socket_nss.cc
|
| @@ -86,7 +86,6 @@
|
| #include "crypto/rsa_private_key.h"
|
| #include "crypto/scoped_nss_types.h"
|
| #include "net/base/address_list.h"
|
| -#include "net/base/connection_type_histograms.h"
|
| #include "net/base/dns_util.h"
|
| #include "net/base/io_buffer.h"
|
| #include "net/base/net_errors.h"
|
| @@ -1631,6 +1630,11 @@ void SSLClientSocketNSS::Core::HandshakeCallback(
|
| }
|
|
|
| void SSLClientSocketNSS::Core::HandshakeSucceeded() {
|
| + // TODO(vadimt): Remove ScopedProfile below once crbug.com/424386 is fixed.
|
| + tracked_objects::ScopedProfile tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "424386 SSLClientSocketNSS::Core::HandshakeSucceeded"));
|
| +
|
| DCHECK(OnNSSTaskRunner());
|
|
|
| PRBool last_handshake_resumed;
|
| @@ -1657,6 +1661,11 @@ void SSLClientSocketNSS::Core::HandshakeSucceeded() {
|
| }
|
|
|
| int SSLClientSocketNSS::Core::HandleNSSError(PRErrorCode nss_error) {
|
| + // TODO(vadimt): Remove ScopedProfile below once crbug.com/424386 is fixed.
|
| + tracked_objects::ScopedProfile tracking_profile(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "424386 SSLClientSocketNSS::Core::HandleNSSError"));
|
| +
|
| DCHECK(OnNSSTaskRunner());
|
|
|
| int net_error = MapNSSClientError(nss_error);
|
| @@ -1804,6 +1813,11 @@ int SSLClientSocketNSS::Core::DoHandshake() {
|
| int net_error = OK;
|
| SECStatus rv = SSL_ForceHandshake(nss_fd_);
|
|
|
| + // TODO(vadimt): Remove ScopedProfile below once crbug.com/424386 is fixed.
|
| + tracked_objects::ScopedProfile tracking_profile1(
|
| + FROM_HERE_WITH_EXPLICIT_FUNCTION(
|
| + "424386 SSLClientSocketNSS::Core::DoHandshake 1"));
|
| +
|
| // Note: this function may be called multiple times during the handshake, so
|
| // even though channel id and client auth are separate else cases, they can
|
| // both be used during a single SSL handshake.
|
| @@ -2473,8 +2487,6 @@ void SSLClientSocketNSS::Core::UpdateConnectionStatus() {
|
| SSL_CONNECTION_COMPRESSION_MASK) <<
|
| SSL_CONNECTION_COMPRESSION_SHIFT;
|
|
|
| - // NSS 3.14.x doesn't have a version macro for TLS 1.2 (because NSS didn't
|
| - // support it yet), so use 0x0303 directly.
|
| int version = SSL_CONNECTION_VERSION_UNKNOWN;
|
| if (channel_info.protocolVersion < SSL_LIBRARY_VERSION_3_0) {
|
| // All versions less than SSL_LIBRARY_VERSION_3_0 are treated as SSL
|
| @@ -2482,11 +2494,11 @@ void SSLClientSocketNSS::Core::UpdateConnectionStatus() {
|
| version = SSL_CONNECTION_VERSION_SSL2;
|
| } else if (channel_info.protocolVersion == SSL_LIBRARY_VERSION_3_0) {
|
| version = SSL_CONNECTION_VERSION_SSL3;
|
| - } else if (channel_info.protocolVersion == SSL_LIBRARY_VERSION_3_1_TLS) {
|
| + } else if (channel_info.protocolVersion == SSL_LIBRARY_VERSION_TLS_1_0) {
|
| version = SSL_CONNECTION_VERSION_TLS1;
|
| } else if (channel_info.protocolVersion == SSL_LIBRARY_VERSION_TLS_1_1) {
|
| version = SSL_CONNECTION_VERSION_TLS1_1;
|
| - } else if (channel_info.protocolVersion == 0x0303) {
|
| + } else if (channel_info.protocolVersion == SSL_LIBRARY_VERSION_TLS_1_2) {
|
| version = SSL_CONNECTION_VERSION_TLS1_2;
|
| }
|
| nss_handshake_state_.ssl_connection_status |=
|
| @@ -3492,8 +3504,11 @@ int SSLClientSocketNSS::DoVerifyCertComplete(int result) {
|
| // TODO(hclam): Skip logging if server cert was expected to be bad because
|
| // |server_cert_verify_result_| doesn't contain all the information about
|
| // the cert.
|
| - if (result == OK)
|
| - LogConnectionTypeMetrics();
|
| + if (result == OK) {
|
| + int ssl_version =
|
| + SSLConnectionStatusToVersion(core_->state().ssl_connection_status);
|
| + RecordConnectionTypeMetrics(ssl_version);
|
| + }
|
|
|
| const CertStatus cert_status = server_cert_verify_result_.cert_status;
|
| if (transport_security_state_ &&
|
| @@ -3561,29 +3576,6 @@ void SSLClientSocketNSS::VerifyCT() {
|
| << ct_verify_result_.unknown_logs_scts.size();
|
| }
|
|
|
| -void SSLClientSocketNSS::LogConnectionTypeMetrics() const {
|
| - UpdateConnectionTypeHistograms(CONNECTION_SSL);
|
| - int ssl_version = SSLConnectionStatusToVersion(
|
| - core_->state().ssl_connection_status);
|
| - switch (ssl_version) {
|
| - case SSL_CONNECTION_VERSION_SSL2:
|
| - UpdateConnectionTypeHistograms(CONNECTION_SSL_SSL2);
|
| - break;
|
| - case SSL_CONNECTION_VERSION_SSL3:
|
| - UpdateConnectionTypeHistograms(CONNECTION_SSL_SSL3);
|
| - break;
|
| - case SSL_CONNECTION_VERSION_TLS1:
|
| - UpdateConnectionTypeHistograms(CONNECTION_SSL_TLS1);
|
| - break;
|
| - case SSL_CONNECTION_VERSION_TLS1_1:
|
| - UpdateConnectionTypeHistograms(CONNECTION_SSL_TLS1_1);
|
| - break;
|
| - case SSL_CONNECTION_VERSION_TLS1_2:
|
| - UpdateConnectionTypeHistograms(CONNECTION_SSL_TLS1_2);
|
| - break;
|
| - };
|
| -}
|
| -
|
| void SSLClientSocketNSS::EnsureThreadIdAssigned() const {
|
| base::AutoLock auto_lock(lock_);
|
| if (valid_thread_id_ != base::kInvalidThreadId)
|
|
|