| 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/network_change_notifier.h" | 19 #include "net/base/network_change_notifier.h" |
| 20 #include "net/url_request/url_fetcher_delegate.h" | 20 #include "net/url_request/url_fetcher_delegate.h" |
| 21 | 21 |
| 22 class PrefService; | 22 class PrefService; |
| 23 | 23 |
| 24 namespace net { | 24 namespace net { |
| 25 class AuthChallengeInfo; | |
| 26 class HostPortPair; | 25 class HostPortPair; |
| 27 class HttpAuthCache; | |
| 28 class HttpNetworkSession; | 26 class HttpNetworkSession; |
| 29 class HttpResponseHeaders; | 27 class HttpResponseHeaders; |
| 30 class URLFetcher; | 28 class URLFetcher; |
| 31 class URLRequestContextGetter; | 29 class URLRequestContextGetter; |
| 32 } | 30 } |
| 33 | 31 |
| 34 namespace data_reduction_proxy { | 32 namespace data_reduction_proxy { |
| 35 | 33 |
| 36 // The number of days of bandwidth usage statistics that are tracked. | 34 // The number of days of bandwidth usage statistics that are tracked. |
| 37 const unsigned int kNumDaysInHistory = 60; | 35 const unsigned int kNumDaysInHistory = 60; |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 PrefService* prefs, | 118 PrefService* prefs, |
| 121 PrefService* local_state_prefs, | 119 PrefService* local_state_prefs, |
| 122 net::URLRequestContextGetter* url_request_context_getter, | 120 net::URLRequestContextGetter* url_request_context_getter, |
| 123 scoped_ptr<DataReductionProxyConfigurator> configurator); | 121 scoped_ptr<DataReductionProxyConfigurator> configurator); |
| 124 | 122 |
| 125 // Sets the logic the embedder uses to set the networking configuration that | 123 // Sets the logic the embedder uses to set the networking configuration that |
| 126 // causes traffic to be proxied. | 124 // causes traffic to be proxied. |
| 127 void SetProxyConfigurator( | 125 void SetProxyConfigurator( |
| 128 scoped_ptr<DataReductionProxyConfigurator> configurator); | 126 scoped_ptr<DataReductionProxyConfigurator> configurator); |
| 129 | 127 |
| 130 // If proxy authentication is compiled in, pre-cache authentication | |
| 131 // keys for all configured proxies in |session|. | |
| 132 static void InitDataReductionProxySession( | |
| 133 net::HttpNetworkSession* session, | |
| 134 const DataReductionProxyParams* params); | |
| 135 | |
| 136 // Returns true if |auth_info| represents an authentication challenge from | |
| 137 // a compatible, configured proxy. | |
| 138 bool IsAcceptableAuthChallenge(net::AuthChallengeInfo* auth_info); | |
| 139 | |
| 140 // Returns a UTF16 string suitable for use as an authentication token in | |
| 141 // response to the challenge represented by |auth_info|. If the token can't | |
| 142 // be correctly generated for |auth_info|, returns an empty UTF16 string. | |
| 143 base::string16 GetTokenForAuthChallenge(net::AuthChallengeInfo* auth_info); | |
| 144 | |
| 145 // Returns true if the proxy is enabled. | 128 // Returns true if the proxy is enabled. |
| 146 bool IsDataReductionProxyEnabled(); | 129 bool IsDataReductionProxyEnabled(); |
| 147 | 130 |
| 148 // Returns true if the alternative proxy is enabled. | 131 // Returns true if the alternative proxy is enabled. |
| 149 bool IsDataReductionProxyAlternativeEnabled() const; | 132 bool IsDataReductionProxyAlternativeEnabled() const; |
| 150 | 133 |
| 151 // Returns true if the proxy is managed by an adminstrator's policy. | 134 // Returns true if the proxy is managed by an adminstrator's policy. |
| 152 bool IsDataReductionProxyManaged(); | 135 bool IsDataReductionProxyManaged(); |
| 153 | 136 |
| 154 // Enables or disables the data reduction proxy. If a probe URL is available, | 137 // Enables or disables the data reduction proxy. If a probe URL is available, |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, | 251 FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, |
| 269 TestBypassList); | 252 TestBypassList); |
| 270 FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, | 253 FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, |
| 271 CheckInitMetricsWhenNotAllowed); | 254 CheckInitMetricsWhenNotAllowed); |
| 272 FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, | 255 FRIEND_TEST_ALL_PREFIXES(DataReductionProxySettingsTest, |
| 273 TestSetProxyConfigs); | 256 TestSetProxyConfigs); |
| 274 | 257 |
| 275 // NetworkChangeNotifier::IPAddressObserver: | 258 // NetworkChangeNotifier::IPAddressObserver: |
| 276 virtual void OnIPAddressChanged() OVERRIDE; | 259 virtual void OnIPAddressChanged() OVERRIDE; |
| 277 | 260 |
| 278 // Underlying implementation of InitDataReductionProxySession(), factored | |
| 279 // out to be testable without creating a full HttpNetworkSession. | |
| 280 static void InitDataReductionAuthentication( | |
| 281 net::HttpAuthCache* auth_cache, | |
| 282 const DataReductionProxyParams* params); | |
| 283 | |
| 284 void OnProxyEnabledPrefChange(); | 261 void OnProxyEnabledPrefChange(); |
| 285 void OnProxyAlternativeEnabledPrefChange(); | 262 void OnProxyAlternativeEnabledPrefChange(); |
| 286 | 263 |
| 287 void ResetDataReductionStatistics(); | 264 void ResetDataReductionStatistics(); |
| 288 | 265 |
| 289 void MaybeActivateDataReductionProxy(bool at_startup); | 266 void MaybeActivateDataReductionProxy(bool at_startup); |
| 290 | 267 |
| 291 // Requests the proxy probe URL, if one is set. If unable to do so, disables | 268 // Requests the proxy probe URL, if one is set. If unable to do so, disables |
| 292 // the proxy, if enabled. Otherwise enables the proxy if disabled by a probe | 269 // the proxy, if enabled. Otherwise enables the proxy if disabled by a probe |
| 293 // failure. | 270 // failure. |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 326 | 303 |
| 327 scoped_ptr<DataReductionProxyParams> params_; | 304 scoped_ptr<DataReductionProxyParams> params_; |
| 328 DataReductionProxyUsageStats* usage_stats_; | 305 DataReductionProxyUsageStats* usage_stats_; |
| 329 | 306 |
| 330 DISALLOW_COPY_AND_ASSIGN(DataReductionProxySettings); | 307 DISALLOW_COPY_AND_ASSIGN(DataReductionProxySettings); |
| 331 }; | 308 }; |
| 332 | 309 |
| 333 } // namespace data_reduction_proxy | 310 } // namespace data_reduction_proxy |
| 334 | 311 |
| 335 #endif // COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_SETTINGS
_H_ | 312 #endif // COMPONENTS_DATA_REDUCTION_PROXY_BROWSER_DATA_REDUCTION_PROXY_SETTINGS
_H_ |
| OLD | NEW |