Chromium Code Reviews| Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_usage_stats.cc |
| diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_usage_stats.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_usage_stats.cc |
| index d1aac75d2d2a2bbc6c1d8c02402b639bddc68d57..5e4339f14d2a740fa94a941fc8b384b03487faac 100644 |
| --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_usage_stats.cc |
| +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_usage_stats.cc |
| @@ -11,6 +11,7 @@ |
| #include "base/metrics/sparse_histogram.h" |
| #include "base/prefs/pref_member.h" |
| #include "components/data_reduction_proxy/core/common/data_reduction_proxy_headers.h" |
| +#include "net/base/load_flags.h" |
| #include "net/base/net_errors.h" |
| #include "net/http/http_response_headers.h" |
| #include "net/http/http_status_code.h" |
| @@ -121,10 +122,35 @@ void DataReductionProxyUsageStats::OnUrlRequestCompleted( |
| const net::URLRequest* request, bool started) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| - if (request->status().status() == net::URLRequestStatus::SUCCESS && |
| - data_reduction_proxy_params_->WasDataReductionProxyUsed(request, NULL)) { |
| - successful_requests_through_proxy_count_++; |
| - NotifyUnavailabilityIfChanged(); |
| + DataReductionProxyTypeInfo proxy_info; |
| + if (data_reduction_proxy_params_->WasDataReductionProxyUsed(request, |
|
bengr
2014/12/13 00:51:59
#include "components/data_reduction_proxy/common/c
sclittle
2014/12/13 01:07:42
Done.
|
| + &proxy_info)) { |
| + if (request->status().status() == net::URLRequestStatus::SUCCESS) { |
| + successful_requests_through_proxy_count_++; |
| + NotifyUnavailabilityIfChanged(); |
| + } |
| + |
| + // Report any network errors that occurred for this request, including OK |
| + // and ABORTED. |
| + if (!proxy_info.is_fallback) { |
| + UMA_HISTOGRAM_SPARSE_SLOWLY( |
| + "DataReductionProxy.RequestCompletionErrorCodes.Primary", |
| + std::abs(request->status().error())); |
| + if (request->load_flags() & net::LOAD_MAIN_FRAME) { |
| + UMA_HISTOGRAM_SPARSE_SLOWLY( |
| + "DataReductionProxy.RequestCompletionErrorCodes.MainFrame.Primary", |
| + std::abs(request->status().error())); |
| + } |
| + } else { |
| + UMA_HISTOGRAM_SPARSE_SLOWLY( |
| + "DataReductionProxy.RequestCompletionErrorCodes.Fallback", |
| + std::abs(request->status().error())); |
| + if (request->load_flags() & net::LOAD_MAIN_FRAME) { |
| + UMA_HISTOGRAM_SPARSE_SLOWLY( |
| + "DataReductionProxy.RequestCompletionErrorCodes.MainFrame.Fallback", |
| + std::abs(request->status().error())); |
| + } |
| + } |
| } |
| } |