Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(612)

Unified Diff: chrome/browser/net/certificate_error_reporter.cc

Issue 1212973002: Add net::CertificateReportSender for handling cert report sending (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add missing NET_EXPORT Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 c1f15914001244b9ebfb3fb563ea800e3d11f863..077b0abc00c9e2257d706be623caf787338380c1 100644
--- a/chrome/browser/net/certificate_error_reporter.cc
+++ b/chrome/browser/net/certificate_error_reporter.cc
@@ -16,11 +16,7 @@
#include "crypto/curve25519.h"
#include "crypto/hkdf.h"
#include "crypto/random.h"
-#include "net/base/elements_upload_data_stream.h"
-#include "net/base/load_flags.h"
-#include "net/base/request_priority.h"
-#include "net/base/upload_bytes_element_reader.h"
-#include "net/url_request/url_request_context.h"
+#include "net/url_request/certificate_report_sender.h"
namespace {
@@ -87,30 +83,28 @@ namespace chrome_browser_net {
CertificateErrorReporter::CertificateErrorReporter(
net::URLRequestContext* request_context,
const GURL& upload_url,
- CookiesPreference cookies_preference)
- : CertificateErrorReporter(request_context,
- upload_url,
- cookies_preference,
+ net::CertificateReportSender::CookiesPreference cookies_preference)
+ : CertificateErrorReporter(upload_url,
kServerPublicKey,
- kServerPublicKeyVersion) {
-}
+ kServerPublicKeyVersion,
+ make_scoped_ptr(new net::CertificateReportSender(
+ request_context,
+ cookies_preference))) {}
CertificateErrorReporter::CertificateErrorReporter(
- net::URLRequestContext* request_context,
const GURL& upload_url,
- CookiesPreference cookies_preference,
const uint8 server_public_key[32],
- const uint32 server_public_key_version)
- : request_context_(request_context),
+ const uint32 server_public_key_version,
+ scoped_ptr<net::CertificateReportSender> certificate_report_sender)
+ : certificate_report_sender_(certificate_report_sender.Pass()),
upload_url_(upload_url),
- cookies_preference_(cookies_preference),
server_public_key_(server_public_key),
server_public_key_version_(server_public_key_version) {
+ DCHECK(certificate_report_sender_);
DCHECK(!upload_url.is_empty());
}
CertificateErrorReporter::~CertificateErrorReporter() {
- STLDeleteElements(&inflight_requests_);
}
void CertificateErrorReporter::SendReport(
@@ -118,11 +112,11 @@ void CertificateErrorReporter::SendReport(
const std::string& serialized_report) {
switch (type) {
case REPORT_TYPE_PINNING_VIOLATION:
- SendSerializedRequest(serialized_report);
+ certificate_report_sender_->Send(upload_url_, serialized_report);
break;
case REPORT_TYPE_EXTENDED_REPORTING:
if (upload_url_.SchemeIsCryptographic()) {
- SendSerializedRequest(serialized_report);
+ certificate_report_sender_->Send(upload_url_, serialized_report);
} else {
DCHECK(IsHttpUploadUrlSupported());
#if defined(USE_OPENSSL)
@@ -135,7 +129,8 @@ void CertificateErrorReporter::SendReport(
}
std::string serialized_encrypted_report;
encrypted_report.SerializeToString(&serialized_encrypted_report);
- SendSerializedRequest(serialized_encrypted_report);
+ certificate_report_sender_->Send(upload_url_,
+ serialized_encrypted_report);
#endif
}
break;
@@ -144,34 +139,6 @@ void CertificateErrorReporter::SendReport(
}
}
-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) {
-}
-
-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();
-}
-
bool CertificateErrorReporter::IsHttpUploadUrlSupported() {
#if defined(USE_OPENSSL)
return true;
@@ -211,31 +178,4 @@ bool CertificateErrorReporter::DecryptCertificateErrorReport(
}
#endif
-void CertificateErrorReporter::SendSerializedRequest(
- const std::string& serialized_request) {
- scoped_ptr<net::URLRequest> url_request = CreateURLRequest(request_context_);
- url_request->set_method("POST");
-
- scoped_ptr<net::UploadElementReader> reader(
- net::UploadOwnedBytesElementReader::CreateWithString(serialized_request));
- url_request->set_upload(
- net::ElementsUploadDataStream::CreateWithReader(reader.Pass(), 0));
-
- net::HttpRequestHeaders headers;
- headers.SetHeader(net::HttpRequestHeaders::kContentType,
- "x-application/chrome-fraudulent-cert-report");
- url_request->SetExtraRequestHeaders(headers);
-
- net::URLRequest* raw_url_request = url_request.get();
- inflight_requests_.insert(url_request.release());
- raw_url_request->Start();
-}
-
-void CertificateErrorReporter::RequestComplete(net::URLRequest* request) {
- std::set<net::URLRequest*>::iterator i = inflight_requests_.find(request);
- DCHECK(i != inflight_requests_.end());
- scoped_ptr<net::URLRequest> url_request(*i);
- inflight_requests_.erase(i);
-}
-
} // namespace chrome_browser_net
« no previous file with comments | « chrome/browser/net/certificate_error_reporter.h ('k') | chrome/browser/net/certificate_error_reporter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698