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

Side by Side Diff: components/data_reduction_proxy/browser/data_reduction_proxy_protocol.h

Issue 390533003: Bypassed Bytes UMAs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: "Addressed bengr comments" Created 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 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 #ifndef COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_PROTOCOL_H_ 5 #ifndef COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_PROTOCOL_H_
6 #define COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_PROTOCOL_H_ 6 #define COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_PROTOCOL_H_
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "net/proxy/proxy_service.h"
10 11
11 namespace base { 12 namespace base {
12 class TimeDelta; 13 class TimeDelta;
13 } 14 }
14 15
15 namespace net { 16 namespace net {
16 class HttpResponseHeaders; 17 class HttpResponseHeaders;
17 class ProxyServer; 18 class ProxyServer;
18 class URLRequest; 19 class URLRequest;
19 } 20 }
20 21
21 class GURL; 22 class GURL;
22 23
23 namespace data_reduction_proxy { 24 namespace data_reduction_proxy {
24 25
25 class DataReductionProxyParams; 26 class DataReductionProxyParams;
26 27
27 // Decides whether to mark the data reduction proxy as temporarily bad and 28 // Decides whether to mark the data reduction proxy as temporarily bad and
28 // put it on the proxy retry list. Returns true if the request should be 29 // put it on the proxy retry list. Returns true if the request should be
29 // retried. Sets |override_response_headers| to redirect if so. 30 // retried. Sets |override_response_headers| to redirect if so.
30 bool MaybeBypassProxyAndPrepareToRetry( 31 bool MaybeBypassProxyAndPrepareToRetry(
32 net::ProxyService::DataReductionProxyBypassType proxy_bypass_type,
31 const DataReductionProxyParams* params, 33 const DataReductionProxyParams* params,
32 net::URLRequest* request, 34 net::URLRequest* request,
33 const net::HttpResponseHeaders* original_response_headers, 35 const net::HttpResponseHeaders* original_response_headers,
34 scoped_refptr<net::HttpResponseHeaders>* override_response_headers); 36 scoped_refptr<net::HttpResponseHeaders>* override_response_headers);
35 37
36 // Returns true if the request method is idempotent. Only idempotent requests 38 // Returns true if the request method is idempotent. Only idempotent requests
37 // are retried on a bypass. Visible as part of the public API for testing. 39 // are retried on a bypass. Visible as part of the public API for testing.
38 bool IsRequestIdempotent(const net::URLRequest* request); 40 bool IsRequestIdempotent(const net::URLRequest* request);
39 41
40 // Sets the override headers to contain a status line that indicates a 42 // Sets the override headers to contain a status line that indicates a
41 // redirect (a 302), a "Location:" header that points to the request url, 43 // redirect (a 302), a "Location:" header that points to the request url,
42 // and sets load flags to bypass proxies. 44 // and sets load flags to bypass proxies.
43 // Visible as part of the public API for testing. 45 // Visible as part of the public API for testing.
44 void OverrideResponseAsRedirect( 46 void OverrideResponseAsRedirect(
45 net::URLRequest* request, 47 net::URLRequest* request,
46 const net::HttpResponseHeaders* original_response_headers, 48 const net::HttpResponseHeaders* original_response_headers,
47 scoped_refptr<net::HttpResponseHeaders>* override_response_headers); 49 scoped_refptr<net::HttpResponseHeaders>* override_response_headers);
48 50
49 // Adds non-empty entries in |data_reduction_proxies| to the retry map 51 // Adds non-empty entries in |data_reduction_proxies| to the retry map
50 // maintained by the proxy service of the request. Adds 52 // maintained by the proxy service of the request. Adds
51 // |data_reduction_proxies.second| to the retry list only if |bypass_all| is 53 // |data_reduction_proxies.second| to the retry list only if |bypass_all| is
52 // true. Visible as part of the public API for testing. 54 // true. Visible as part of the public API for testing.
53 void MarkProxiesAsBadUntil(net::URLRequest* request, 55 void MarkProxiesAsBadUntil(net::URLRequest* request,
54 base::TimeDelta& bypass_duration, 56 base::TimeDelta& bypass_duration,
55 bool bypass_all, 57 bool bypass_all,
56 const std::pair<GURL, GURL>& data_reduction_proxies); 58 const std::pair<GURL, GURL>& data_reduction_proxies);
57 59
58 } // namespace data_reduction_proxy 60 } // namespace data_reduction_proxy
59 #endif // COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_PROTOCOL _H_ 61 #endif // COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_PROTOCOL _H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698