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 15dad135b373587ed318c3ac384c801275367e4b..702d19a783982b38b255c77dfc54ca7d5d0430fb 100644 |
--- a/chrome/browser/net/certificate_error_reporter.cc |
+++ b/chrome/browser/net/certificate_error_reporter.cc |
@@ -37,63 +37,26 @@ CertificateErrorReporter::~CertificateErrorReporter() { |
void CertificateErrorReporter::SendReport(ReportType type, |
const std::string& hostname, |
const net::SSLInfo& ssl_info) { |
- CertLoggerRequest request; |
- std::string out; |
- |
- BuildReport(hostname, ssl_info, &request); |
- |
- switch (type) { |
- case REPORT_TYPE_PINNING_VIOLATION: |
- SendCertLoggerRequest(request); |
- break; |
- case REPORT_TYPE_EXTENDED_REPORTING: |
- // TODO(estark): Encrypt the report if not sending over HTTPS |
- DCHECK(upload_url_.SchemeIsSecure()); |
- SendCertLoggerRequest(request); |
- break; |
- default: |
- NOTREACHED(); |
- } |
-} |
- |
-void CertificateErrorReporter::OnResponseStarted(net::URLRequest* request) { |
- const net::URLRequestStatus& status(request->status()); |
- if (!status.is_success()) { |
- LOG(WARNING) << "Certificate upload failed" |
- << " status:" << status.status() |
- << " error:" << status.error(); |
- } else if (request->GetResponseCode() != 200) { |
- LOG(WARNING) << "Certificate upload HTTP status: " |
- << request->GetResponseCode(); |
- } |
- RequestComplete(request); |
-} |
- |
-void CertificateErrorReporter::OnReadCompleted(net::URLRequest* request, |
- int bytes_read) { |
+ CertLoggerRequest report; |
+ BuildReport(hostname, ssl_info, &report); |
+ SendReport(type, report); |
} |
-scoped_ptr<net::URLRequest> CertificateErrorReporter::CreateURLRequest( |
- net::URLRequestContext* context) { |
- scoped_ptr<net::URLRequest> request = |
- context->CreateRequest(upload_url_, net::DEFAULT_PRIORITY, this); |
- if (cookies_preference_ != SEND_COOKIES) { |
- request->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | |
- net::LOAD_DO_NOT_SAVE_COOKIES); |
- } |
- return request.Pass(); |
+void CertificateErrorReporter::SendReport(ReportType type, |
+ const CertLoggerRequest& report) { |
+ if (type == REPORT_TYPE_EXTENDED_REPORTING) { |
+ // TODO(estark): Encrypt the report if not sending over HTTPS |
Ryan Sleevi
2015/04/16 01:44:10
FWIW, a tracking bug for this is handy, even if it
|
+ DCHECK(upload_url_.SchemeIsSecure()); |
} |
-void CertificateErrorReporter::SendCertLoggerRequest( |
- const CertLoggerRequest& request) { |
- std::string serialized_request; |
- request.SerializeToString(&serialized_request); |
+std::string serialized_report; |
+report.SerializeToString(&serialized_report); |
scoped_ptr<net::URLRequest> url_request = CreateURLRequest(request_context_); |
url_request->set_method("POST"); |
scoped_ptr<net::UploadElementReader> reader( |
- net::UploadOwnedBytesElementReader::CreateWithString(serialized_request)); |
+ net::UploadOwnedBytesElementReader::CreateWithString(serialized_report)); |
url_request->set_upload( |
net::ElementsUploadDataStream::CreateWithReader(reader.Pass(), 0)); |
@@ -107,6 +70,41 @@ void CertificateErrorReporter::SendCertLoggerRequest( |
raw_url_request->Start(); |
} |
+void CertificateErrorReporter::OnResponseStarted(net::URLRequest* request) { |
+ const net::URLRequestStatus& status(request->status()); |
+ if (!status.is_success()) { |
+ LOG(WARNING) << "Certificate upload failed" |
+ << " status:" << status.status() |
+ << " error:" << status.error(); |
+ } else if (request->GetResponseCode() != 200) { |
+ LOG(WARNING) << "Certificate upload HTTP status: " |
+ << request->GetResponseCode(); |
+ } |
+ RequestComplete(request); |
+} |
+ |
+void CertificateErrorReporter::OnReadCompleted(net::URLRequest* request, |
+ int bytes_read) { |
+} |
+ |
+void CertificateErrorReporter::BuildReport(const std::string& hostname, |
+ const net::SSLInfo& ssl_info, |
+ uint32 validation_result, |
+ uint32 interstitial_reason, |
+ ProceedDecision proceed_decision, |
+ Overridable overridable, |
+ CertLoggerRequest* out_request) { |
+ BuildReport(hostname, ssl_info, out_request); |
+ out_request->mutable_interstitial_info()->set_validation_result( |
+ validation_result); |
+ out_request->mutable_interstitial_info()->set_interstitial_reason( |
+ interstitial_reason); |
+ out_request->mutable_interstitial_info()->set_user_proceeded( |
+ proceed_decision == USER_PROCEEDED); |
+ out_request->mutable_interstitial_info()->set_overridable(overridable == |
+ OVERRIDABLE); |
+} |
+ |
void CertificateErrorReporter::BuildReport(const std::string& hostname, |
const net::SSLInfo& ssl_info, |
CertLoggerRequest* out_request) { |
@@ -125,6 +123,21 @@ void CertificateErrorReporter::BuildReport(const std::string& hostname, |
out_request->add_pin(ssl_info.pinning_failure_log); |
} |
+scoped_ptr<net::URLRequest> CertificateErrorReporter::CreateURLRequest( |
+ net::URLRequestContext* context) { |
+ scoped_ptr<net::URLRequest> request = |
+ context->CreateRequest(upload_url_, net::DEFAULT_PRIORITY, this); |
+ if (cookies_preference_ != SEND_COOKIES) { |
+ request->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | |
+ net::LOAD_DO_NOT_SAVE_COOKIES); |
+ } |
+ return request.Pass(); |
+} |
+ |
+void CertificateErrorReporter::SendCertLoggerRequest( |
+ const CertLoggerRequest& request) { |
+} |
Ryan Sleevi
2015/04/16 01:44:10
Dead code? Broken?
|
+ |
void CertificateErrorReporter::RequestComplete(net::URLRequest* request) { |
std::set<net::URLRequest*>::iterator i = inflight_requests_.find(request); |
DCHECK(i != inflight_requests_.end()); |