| Index: components/certificate_reporting/error_reporter.cc
|
| diff --git a/components/certificate_reporting/error_reporter.cc b/components/certificate_reporting/error_reporter.cc
|
| index 57f372c53aa6f7e0eef83fa0a90934b6dbeac4b9..ed5e795fc413dfb6627767acaa3bc4d9767d5830 100644
|
| --- a/components/certificate_reporting/error_reporter.cc
|
| +++ b/components/certificate_reporting/error_reporter.cc
|
| @@ -11,8 +11,6 @@
|
|
|
| #include "base/logging.h"
|
| #include "base/memory/ptr_util.h"
|
| -#include "base/metrics/histogram_macros.h"
|
| -#include "base/metrics/sparse_histogram.h"
|
| #include "components/certificate_reporting/encrypted_cert_logger.pb.h"
|
| #include "crypto/aead.h"
|
| #include "crypto/curve25519.h"
|
| @@ -100,29 +98,17 @@ bool EncryptSerializedReport(const uint8_t* server_public_key,
|
| return true;
|
| }
|
|
|
| -// Records an UMA histogram of the net errors when certificate reports
|
| -// fail to send.
|
| -void RecordUMAOnFailure(const GURL& report_uri, int net_error, int report_id) {
|
| - UMA_HISTOGRAM_SPARSE_SLOWLY("SSL.CertificateErrorReportFailure", -net_error);
|
| -}
|
| -
|
| -void DoNothingOnSuccess(int report_id) {}
|
| -
|
| } // namespace
|
|
|
| ErrorReporter::ErrorReporter(
|
| net::URLRequestContext* request_context,
|
| const GURL& upload_url,
|
| net::ReportSender::CookiesPreference cookies_preference)
|
| - : ErrorReporter(
|
| - upload_url,
|
| - kServerPublicKey,
|
| - kServerPublicKeyVersion,
|
| - base::MakeUnique<net::ReportSender>(request_context,
|
| - cookies_preference,
|
| - base::Bind(RecordUMAOnFailure),
|
| - base::Bind(DoNothingOnSuccess))) {
|
| -}
|
| + : ErrorReporter(upload_url,
|
| + kServerPublicKey,
|
| + kServerPublicKeyVersion,
|
| + base::MakeUnique<net::ReportSender>(request_context,
|
| + cookies_preference)) {}
|
|
|
| ErrorReporter::ErrorReporter(
|
| const GURL& upload_url,
|
| @@ -140,22 +126,23 @@ ErrorReporter::ErrorReporter(
|
| ErrorReporter::~ErrorReporter() {}
|
|
|
| void ErrorReporter::SendExtendedReportingReport(
|
| - const std::string& serialized_report) {
|
| + const std::string& serialized_report,
|
| + int report_id) {
|
| if (upload_url_.SchemeIsCryptographic()) {
|
| certificate_report_sender_->Send(upload_url_, "application/octet-stream",
|
| - serialized_report, 0);
|
| - } else {
|
| - EncryptedCertLoggerRequest encrypted_report;
|
| - if (!EncryptSerializedReport(server_public_key_, server_public_key_version_,
|
| - serialized_report, &encrypted_report)) {
|
| - LOG(ERROR) << "Failed to encrypt serialized report.";
|
| - return;
|
| - }
|
| - std::string serialized_encrypted_report;
|
| - encrypted_report.SerializeToString(&serialized_encrypted_report);
|
| - certificate_report_sender_->Send(upload_url_, "application/octet-stream",
|
| - serialized_encrypted_report, 0);
|
| + serialized_report, report_id);
|
| + return;
|
| }
|
| + EncryptedCertLoggerRequest encrypted_report;
|
| + if (!EncryptSerializedReport(server_public_key_, server_public_key_version_,
|
| + serialized_report, &encrypted_report)) {
|
| + LOG(ERROR) << "Failed to encrypt serialized report.";
|
| + return;
|
| + }
|
| + std::string serialized_encrypted_report;
|
| + encrypted_report.SerializeToString(&serialized_encrypted_report);
|
| + certificate_report_sender_->Send(upload_url_, "application/octet-stream",
|
| + serialized_encrypted_report, report_id);
|
| }
|
|
|
| // Used only by tests.
|
| @@ -181,4 +168,14 @@ bool ErrorReporter::DecryptErrorReport(
|
| decrypted_serialized_report);
|
| }
|
|
|
| +void ErrorReporter::SetErrorCallback(
|
| + const base::Callback<void(const GURL&, int, int)>& callback) {
|
| + certificate_report_sender_->SetErrorCallback(callback);
|
| +}
|
| +
|
| +void ErrorReporter::SetSuccessCallback(
|
| + const base::Callback<void(int)>& callback) {
|
| + certificate_report_sender_->SetSuccessCallback(callback);
|
| +}
|
| +
|
| } // namespace certificate_reporting
|
|
|