OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ssl/chrome_expect_ct_reporter.h" | 5 #include "chrome/browser/ssl/chrome_expect_ct_reporter.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/base64.h" | 9 #include "base/base64.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 std::string signature; | 99 std::string signature; |
100 base::Base64Encode(sct_and_status.sct->signature.signature_data, &signature); | 100 base::Base64Encode(sct_and_status.sct->signature.signature_data, &signature); |
101 sct->SetString("signature", signature); | 101 sct->SetString("signature", signature); |
102 | 102 |
103 list_item->Set("sct", std::move(sct)); | 103 list_item->Set("sct", std::move(sct)); |
104 list->Append(std::move(list_item)); | 104 list->Append(std::move(list_item)); |
105 } | 105 } |
106 | 106 |
107 // Records an UMA histogram of the net errors when Expect CT reports | 107 // Records an UMA histogram of the net errors when Expect CT reports |
108 // fail to send. | 108 // fail to send. |
109 void RecordUMAOnFailure(const GURL& report_uri, int net_error) { | 109 void RecordUMAOnFailure(const GURL& report_uri, |
| 110 int net_error, |
| 111 int http_response_code) { |
110 UMA_HISTOGRAM_SPARSE_SLOWLY("SSL.ExpectCTReportFailure2", -net_error); | 112 UMA_HISTOGRAM_SPARSE_SLOWLY("SSL.ExpectCTReportFailure2", -net_error); |
111 } | 113 } |
112 | 114 |
113 } // namespace | 115 } // namespace |
114 | 116 |
115 ChromeExpectCTReporter::ChromeExpectCTReporter( | 117 ChromeExpectCTReporter::ChromeExpectCTReporter( |
116 net::URLRequestContext* request_context) | 118 net::URLRequestContext* request_context) |
117 : report_sender_( | 119 : report_sender_( |
118 new net::ReportSender(request_context, | 120 new net::ReportSender(request_context, |
119 net::ReportSender::DO_NOT_SEND_COOKIES)) {} | 121 net::ReportSender::DO_NOT_SEND_COOKIES)) {} |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 | 171 |
170 std::string serialized_report; | 172 std::string serialized_report; |
171 if (!base::JSONWriter::Write(report, &serialized_report)) { | 173 if (!base::JSONWriter::Write(report, &serialized_report)) { |
172 LOG(ERROR) << "Failed to serialize Expect CT report"; | 174 LOG(ERROR) << "Failed to serialize Expect CT report"; |
173 return; | 175 return; |
174 } | 176 } |
175 | 177 |
176 UMA_HISTOGRAM_BOOLEAN("SSL.ExpectCTReportSendingAttempt", true); | 178 UMA_HISTOGRAM_BOOLEAN("SSL.ExpectCTReportSendingAttempt", true); |
177 | 179 |
178 report_sender_->Send(report_uri, "application/json; charset=utf-8", | 180 report_sender_->Send(report_uri, "application/json; charset=utf-8", |
179 serialized_report, base::Closure(), | 181 serialized_report, base::Callback<void()>(), |
180 base::Bind(RecordUMAOnFailure)); | 182 base::Bind(RecordUMAOnFailure)); |
181 } | 183 } |
OLD | NEW |