OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_CORE_BROWSER_LOFI_DECIDER_H_ | 5 #ifndef COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_LOFI_DECIDER_H_ |
6 #define COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_LOFI_DECIDER_H_ | 6 #define COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_LOFI_DECIDER_H_ |
7 | 7 |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "net/url_request/url_request.h" | 9 #include "net/url_request/url_request.h" |
10 | 10 |
11 namespace net { | 11 namespace net { |
12 class HttpRequestHeaders; | 12 class HttpRequestHeaders; |
13 } | 13 } |
14 | 14 |
15 namespace data_reduction_proxy { | 15 namespace data_reduction_proxy { |
16 | 16 |
17 // Interface to determine if a request should be made for a low fidelity version | 17 // Interface to determine if a request should be made for a low fidelity version |
18 // of the resource. | 18 // of the resource. |
19 class LoFiDecider { | 19 class LoFiDecider { |
20 public: | 20 public: |
21 virtual ~LoFiDecider() {} | 21 virtual ~LoFiDecider() {} |
22 | 22 |
23 // Returns true when Lo-Fi mode is on for the given |request|. This means the | 23 // Returns true when Lo-Fi mode is on for the given |request|. This means the |
24 // Lo-Fi header should be added to the given request. | 24 // Lo-Fi header should be added to the given request. |
25 virtual bool IsUsingLoFiMode(const net::URLRequest& request) const = 0; | 25 virtual bool IsUsingLoFiMode(const net::URLRequest& request) const = 0; |
26 | 26 |
27 // Returns true when Lo-Fi mode is on for the given |request|. If the | 27 // Returns true when Lo-Fi mode is on for the given |request|. If the |
28 // |request| is using Lo-Fi mode, adds the "q=low" directive to the |headers|. | 28 // |request| is using Lo-Fi mode, adds the "q=low" directive to the |headers|. |
29 // If the user is in the experiment control group and Lo-Fi is on, adds the | 29 // If the |request| is using Lo-Fi preview mode, and it is a main frame |
30 // experiment directive "exp=lofi_active_control". | 30 // request adds the "q=preview" and it is a main frame request directive to |
| 31 // the |headers|. If the user is in the experiment control group and Lo-Fi is |
| 32 // on, adds the experiment directive "exp=lofi_active_control". |
31 virtual bool MaybeAddLoFiDirectiveToHeaders( | 33 virtual bool MaybeAddLoFiDirectiveToHeaders( |
32 const net::URLRequest& request, | 34 const net::URLRequest& request, |
33 net::HttpRequestHeaders* headers) const = 0; | 35 net::HttpRequestHeaders* headers) const = 0; |
34 }; | 36 }; |
35 | 37 |
36 } // namespace data_reduction_proxy | 38 } // namespace data_reduction_proxy |
37 | 39 |
38 #endif // COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_LOFI_DECIDER_H_ | 40 #endif // COMPONENTS_DATA_REDUCTION_PROXY_CORE_BROWSER_LOFI_DECIDER_H_ |
OLD | NEW |