OLD | NEW |
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_SETTINGS_H_ | 5 #ifndef COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_SETTINGS_H_ |
6 #define COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_SETTINGS_H_ | 6 #define COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_SETTINGS_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/compiler_specific.h" | 11 #include "base/compiler_specific.h" |
12 #include "base/gtest_prod_util.h" | 12 #include "base/gtest_prod_util.h" |
13 #include "base/memory/scoped_ptr.h" | 13 #include "base/memory/scoped_ptr.h" |
14 #include "base/prefs/pref_member.h" | 14 #include "base/prefs/pref_member.h" |
15 #include "base/threading/thread_checker.h" | 15 #include "base/threading/thread_checker.h" |
16 #include "components/data_reduction_proxy/browser/data_reduction_proxy_configura
tor.h" | 16 #include "components/data_reduction_proxy/browser/data_reduction_proxy_configura
tor.h" |
17 #include "components/data_reduction_proxy/browser/data_reduction_proxy_params.h" | 17 #include "components/data_reduction_proxy/browser/data_reduction_proxy_params.h" |
18 #include "components/data_reduction_proxy/browser/data_reduction_proxy_usage_sta
ts.h" | 18 #include "components/data_reduction_proxy/browser/data_reduction_proxy_usage_sta
ts.h" |
| 19 #include "net/base/net_util.h" |
19 #include "net/base/network_change_notifier.h" | 20 #include "net/base/network_change_notifier.h" |
20 #include "net/url_request/url_fetcher_delegate.h" | 21 #include "net/url_request/url_fetcher_delegate.h" |
21 | 22 |
22 class PrefService; | 23 class PrefService; |
23 | 24 |
24 namespace net { | 25 namespace net { |
25 class HostPortPair; | 26 class HostPortPair; |
26 class HttpNetworkSession; | 27 class HttpNetworkSession; |
27 class HttpResponseHeaders; | 28 class HttpResponseHeaders; |
28 class URLFetcher; | 29 class URLFetcher; |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 // Metrics method. Subclasses should override if they wish to provide | 202 // Metrics method. Subclasses should override if they wish to provide |
202 // alternatives. | 203 // alternatives. |
203 virtual void RecordDataReductionInit(); | 204 virtual void RecordDataReductionInit(); |
204 | 205 |
205 virtual void AddDefaultProxyBypassRules(); | 206 virtual void AddDefaultProxyBypassRules(); |
206 | 207 |
207 // Writes a warning to the log that is used in backend processing of | 208 // Writes a warning to the log that is used in backend processing of |
208 // customer feedback. Virtual so tests can mock it for verification. | 209 // customer feedback. Virtual so tests can mock it for verification. |
209 virtual void LogProxyState(bool enabled, bool restricted, bool at_startup); | 210 virtual void LogProxyState(bool enabled, bool restricted, bool at_startup); |
210 | 211 |
211 // Virtualized for mocking | 212 // Virtualized for mocking. Records UMA containing the result of requesting |
| 213 // the probe URL. |
212 virtual void RecordProbeURLFetchResult( | 214 virtual void RecordProbeURLFetchResult( |
213 data_reduction_proxy::ProbeURLFetchResult result); | 215 data_reduction_proxy::ProbeURLFetchResult result); |
| 216 |
| 217 // Virtualized for mocking. Records UMA specifying whether the proxy was |
| 218 // enabled or disabled at startup. |
214 virtual void RecordStartupState( | 219 virtual void RecordStartupState( |
215 data_reduction_proxy::ProxyStartupState state); | 220 data_reduction_proxy::ProxyStartupState state); |
216 | 221 |
| 222 // Virtualized for mocking. Returns the list of network interfaces in use. |
| 223 virtual void GetNetworkList(net::NetworkInterfaceList* interfaces, |
| 224 int policy); |
| 225 |
217 DataReductionProxyConfigurator* configurator() { | 226 DataReductionProxyConfigurator* configurator() { |
218 return configurator_.get(); | 227 return configurator_.get(); |
219 } | 228 } |
220 | 229 |
221 // Reset params for tests. | 230 // Reset params for tests. |
222 void ResetParamsForTest(DataReductionProxyParams* params); | 231 void ResetParamsForTest(DataReductionProxyParams* params); |
223 | 232 |
224 private: | 233 private: |
225 friend class DataReductionProxySettingsTestBase; | 234 friend class DataReductionProxySettingsTestBase; |
226 friend class DataReductionProxySettingsTest; | 235 friend class DataReductionProxySettingsTest; |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 void MaybeActivateDataReductionProxy(bool at_startup); | 275 void MaybeActivateDataReductionProxy(bool at_startup); |
267 | 276 |
268 // Requests the proxy probe URL, if one is set. If unable to do so, disables | 277 // Requests the proxy probe URL, if one is set. If unable to do so, disables |
269 // the proxy, if enabled. Otherwise enables the proxy if disabled by a probe | 278 // the proxy, if enabled. Otherwise enables the proxy if disabled by a probe |
270 // failure. | 279 // failure. |
271 void ProbeWhetherDataReductionProxyIsAvailable(); | 280 void ProbeWhetherDataReductionProxyIsAvailable(); |
272 | 281 |
273 // Warms the connection to the data reduction proxy. | 282 // Warms the connection to the data reduction proxy. |
274 void WarmProxyConnection(); | 283 void WarmProxyConnection(); |
275 | 284 |
| 285 // Disables use of the data reduction proxy on VPNs. Returns true if the |
| 286 // data reduction proxy has been disabled. |
| 287 bool DisableIfVPN(); |
| 288 |
276 // Generic method to get a URL fetcher. | 289 // Generic method to get a URL fetcher. |
277 net::URLFetcher* GetBaseURLFetcher(const GURL& gurl, int load_flags); | 290 net::URLFetcher* GetBaseURLFetcher(const GURL& gurl, int load_flags); |
278 | 291 |
279 // Returns a UTF16 string that's the hash of the configured authentication | |
280 // |key| and |salt|. Returns an empty UTF16 string if no key is configured or | |
281 // the data reduction proxy feature isn't available. | |
282 static base::string16 AuthHashForSalt(int64 salt, | |
283 const std::string& key); | |
284 | |
285 std::string key_; | 292 std::string key_; |
286 bool restricted_by_carrier_; | 293 bool restricted_by_carrier_; |
287 bool enabled_by_user_; | 294 bool enabled_by_user_; |
| 295 bool disabled_on_vpn_; |
288 | 296 |
289 scoped_ptr<net::URLFetcher> fetcher_; | 297 scoped_ptr<net::URLFetcher> fetcher_; |
290 scoped_ptr<net::URLFetcher> warmup_fetcher_; | 298 scoped_ptr<net::URLFetcher> warmup_fetcher_; |
291 | 299 |
292 BooleanPrefMember spdy_proxy_auth_enabled_; | 300 BooleanPrefMember spdy_proxy_auth_enabled_; |
293 BooleanPrefMember data_reduction_proxy_alternative_enabled_; | 301 BooleanPrefMember data_reduction_proxy_alternative_enabled_; |
294 | 302 |
295 PrefService* prefs_; | 303 PrefService* prefs_; |
296 PrefService* local_state_prefs_; | 304 PrefService* local_state_prefs_; |
297 | 305 |
298 net::URLRequestContextGetter* url_request_context_getter_; | 306 net::URLRequestContextGetter* url_request_context_getter_; |
299 | 307 |
300 scoped_ptr<DataReductionProxyConfigurator> configurator_; | 308 scoped_ptr<DataReductionProxyConfigurator> configurator_; |
301 | 309 |
302 base::ThreadChecker thread_checker_; | 310 base::ThreadChecker thread_checker_; |
303 | 311 |
304 scoped_ptr<DataReductionProxyParams> params_; | 312 scoped_ptr<DataReductionProxyParams> params_; |
305 DataReductionProxyUsageStats* usage_stats_; | 313 DataReductionProxyUsageStats* usage_stats_; |
306 | 314 |
307 DISALLOW_COPY_AND_ASSIGN(DataReductionProxySettings); | 315 DISALLOW_COPY_AND_ASSIGN(DataReductionProxySettings); |
308 }; | 316 }; |
309 | 317 |
310 } // namespace data_reduction_proxy | 318 } // namespace data_reduction_proxy |
311 | 319 |
312 #endif // COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_SETTINGS
_H_ | 320 #endif // COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_SETTINGS
_H_ |
OLD | NEW |