| 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..a755e6de5983cddc1b8b5933a903a769ef98e271 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,8 @@
|
| #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 "components/data_reduction_proxy/core/common/data_reduction_proxy_params.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 +123,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,
|
| + &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()));
|
| + }
|
| + }
|
| }
|
| }
|
|
|
|
|