| 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 3fafd73fceb84b22025b410fdf83c3c3058eab36..b21de5b7f2c1b2261f340d12fa2a290cbb93baf5 100644
|
| --- a/net/socket/ssl_client_socket_nss.cc
|
| +++ b/net/socket/ssl_client_socket_nss.cc
|
| @@ -1460,8 +1460,18 @@ int SSLClientSocketNSS::DoVerifyCert(int result) {
|
| }
|
|
|
| int flags = 0;
|
| - if (ssl_config_.rev_checking_enabled)
|
| - flags |= X509Certificate::VERIFY_REV_CHECKING_ENABLED;
|
| + if (ssl_config_.rev_checking_enabled) {
|
| + const std::string& hostname = host_and_port_.host();
|
| + // is_pinned is an approximation but is currently accurate. Even if more
|
| + // pinned sites are added, this errs on the site of caution.
|
| + bool is_pinned = hostname == "google.com" ||
|
| + (hostname.size() > 11 &&
|
| + hostname.rfind(".google.com") == hostname.size() - 11);
|
| + if (!is_pinned ||
|
| + !SSLConfigService::rev_checking_disabled_for_pinned_sites()) {
|
| + flags |= X509Certificate::VERIFY_REV_CHECKING_ENABLED;
|
| + }
|
| + }
|
| if (ssl_config_.verify_ev_cert)
|
| flags |= X509Certificate::VERIFY_EV_CERT;
|
| verifier_.reset(new SingleRequestCertVerifier(cert_verifier_));
|
|
|