| Index: chrome/browser/net/certificate_error_reporter.cc
 | 
| diff --git a/chrome/browser/net/certificate_error_reporter.cc b/chrome/browser/net/certificate_error_reporter.cc
 | 
| index edff489f4ca0762dac6eb03bf554a1bc7e0adef2..b5de02482eede20f84db04b35801659dee01155b 100644
 | 
| --- a/chrome/browser/net/certificate_error_reporter.cc
 | 
| +++ b/chrome/browser/net/certificate_error_reporter.cc
 | 
| @@ -28,6 +28,8 @@
 | 
|  
 | 
|  namespace {
 | 
|  
 | 
| +using chrome_browser_net::CertLoggerRequest;
 | 
| +
 | 
|  // Constants used for crypto
 | 
|  static const uint8 kServerPublicKey[] = {
 | 
|      0x51, 0xcc, 0x52, 0x67, 0x42, 0x47, 0x3b, 0x10, 0xe8, 0x63, 0x18,
 | 
| @@ -81,6 +83,41 @@ bool EncryptSerializedReport(
 | 
|  }
 | 
|  #endif
 | 
|  
 | 
| +void AddCertStatusToReportErrors(
 | 
| +    net::CertStatus cert_status,
 | 
| +    CertLoggerRequest* report) {
 | 
| +  if (cert_status & net::CERT_STATUS_REVOKED)
 | 
| +    report->add_cert_error(CertLoggerRequest::ERR_CERT_REVOKED);
 | 
| +  if (cert_status & net::CERT_STATUS_INVALID)
 | 
| +    report->add_cert_error(CertLoggerRequest::ERR_CERT_INVALID);
 | 
| +  if (cert_status & net::CERT_STATUS_PINNED_KEY_MISSING)
 | 
| +    report->add_cert_error(
 | 
| +        CertLoggerRequest::ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN);
 | 
| +  if (cert_status & net::CERT_STATUS_AUTHORITY_INVALID)
 | 
| +    report->add_cert_error(CertLoggerRequest::ERR_CERT_AUTHORITY_INVALID);
 | 
| +  if (cert_status & net::CERT_STATUS_COMMON_NAME_INVALID)
 | 
| +    report->add_cert_error(CertLoggerRequest::ERR_CERT_COMMON_NAME_INVALID);
 | 
| +  if (cert_status & net::CERT_STATUS_NON_UNIQUE_NAME)
 | 
| +    report->add_cert_error(CertLoggerRequest::ERR_CERT_NON_UNIQUE_NAME);
 | 
| +  if (cert_status & net::CERT_STATUS_NAME_CONSTRAINT_VIOLATION)
 | 
| +    report->add_cert_error(
 | 
| +        CertLoggerRequest::ERR_CERT_NAME_CONSTRAINT_VIOLATION);
 | 
| +  if (cert_status & net::CERT_STATUS_WEAK_SIGNATURE_ALGORITHM)
 | 
| +    report->add_cert_error(
 | 
| +        CertLoggerRequest::ERR_CERT_WEAK_SIGNATURE_ALGORITHM);
 | 
| +  if (cert_status & net::CERT_STATUS_WEAK_KEY)
 | 
| +    report->add_cert_error(CertLoggerRequest::ERR_CERT_WEAK_KEY);
 | 
| +  if (cert_status & net::CERT_STATUS_DATE_INVALID)
 | 
| +    report->add_cert_error(CertLoggerRequest::ERR_CERT_DATE_INVALID);
 | 
| +  if (cert_status & net::CERT_STATUS_VALIDITY_TOO_LONG)
 | 
| +    report->add_cert_error(CertLoggerRequest::ERR_CERT_VALIDITY_TOO_LONG);
 | 
| +  if (cert_status & net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION)
 | 
| +    report->add_cert_error(
 | 
| +        CertLoggerRequest::ERR_CERT_UNABLE_TO_CHECK_REVOCATION);
 | 
| +  if (cert_status & net::CERT_STATUS_NO_REVOCATION_MECHANISM)
 | 
| +    report->add_cert_error(CertLoggerRequest::ERR_CERT_NO_REVOCATION_MECHANISM);
 | 
| +}
 | 
| +
 | 
|  }  // namespace
 | 
|  
 | 
|  namespace chrome_browser_net {
 | 
| @@ -261,6 +298,8 @@ void CertificateErrorReporter::BuildReport(const std::string& hostname,
 | 
|      *cert_chain += pem_encoded_chain[i];
 | 
|  
 | 
|    out_request->add_pin(ssl_info.pinning_failure_log);
 | 
| +
 | 
| +  AddCertStatusToReportErrors(ssl_info.cert_status, out_request);
 | 
|  }
 | 
|  
 | 
|  void CertificateErrorReporter::RequestComplete(net::URLRequest* request) {
 | 
| 
 |