Support for unpacked ARM packed relocations.
[chromium-blink-merge.git] / components / data_reduction_proxy / browser / data_reduction_proxy_metrics.h
blobb308742aa3426fa6ece7a7f5a93dbb9322c2f86b
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_METRICS_H_
6 #define COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_METRICS_H_
8 #include "base/time/time.h"
10 namespace net {
11 class URLRequest;
14 class PrefService;
16 namespace data_reduction_proxy {
18 enum DataReductionProxyRequestType {
19 VIA_DATA_REDUCTION_PROXY, // A request served by the data reduction proxy.
21 // Below are reasons why a request is not served by the enabled data reduction
22 // proxy. Off-the-record profile data is not counted in all cases.
23 HTTPS, // An https request.
24 SHORT_BYPASS, // The client is bypassed by the proxy for a short time.
25 LONG_BYPASS, // The client is bypassed by the proxy for a long time (due
26 // to country bypass policy, for example).
27 UNKNOWN_TYPE, // Any other reason not listed above.
30 // Returns DataReductionProxyRequestType for |request|.
31 DataReductionProxyRequestType GetDataReductionProxyRequestType(
32 const net::URLRequest* request);
34 // Returns |received_content_length| as adjusted original content length if
35 // |original_content_length| has the invalid value (-1) or |request_type|
36 // is not |VIA_DATA_REDUCTION_PROXY|.
37 int64 GetAdjustedOriginalContentLength(
38 DataReductionProxyRequestType request_type,
39 int64 original_content_length,
40 int64 received_content_length);
42 // This is only exposed for testing. It is normally called by
43 // UpdateContentLengthPrefs.
44 void UpdateContentLengthPrefsForDataReductionProxy(
45 int received_content_length,
46 int original_content_length,
47 bool with_data_reduction_proxy_enabled,
48 DataReductionProxyRequestType request_type,
49 base::Time now, PrefService* prefs);
51 // Records daily data savings statistics to prefs and reports data savings UMA.
52 void UpdateContentLengthPrefs(
53 int received_content_length,
54 int original_content_length,
55 bool with_data_reduction_proxy_enabled,
56 DataReductionProxyRequestType request_type,
57 PrefService* prefs);
59 } // namespace data_reduction_proxy
61 #endif // COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_METRICS_H_