| Index: components/data_reduction_proxy/browser/data_reduction_proxy_settings.cc
|
| diff --git a/components/data_reduction_proxy/browser/data_reduction_proxy_settings.cc b/components/data_reduction_proxy/browser/data_reduction_proxy_settings.cc
|
| index fe08eaac69ba289a641400f7df742a0e3e8fb55b..1f7cd2fe3926cb532cc33c222da01e8741c32fe5 100644
|
| --- a/components/data_reduction_proxy/browser/data_reduction_proxy_settings.cc
|
| +++ b/components/data_reduction_proxy/browser/data_reduction_proxy_settings.cc
|
| @@ -16,6 +16,7 @@
|
| #include "base/strings/stringprintf.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "components/data_reduction_proxy/browser/data_reduction_proxy_configurator.h"
|
| +#include "components/data_reduction_proxy/browser/data_reduction_proxy_params.h"
|
| #include "components/data_reduction_proxy/common/data_reduction_proxy_pref_names.h"
|
| #include "components/data_reduction_proxy/common/data_reduction_proxy_switches.h"
|
| #include "crypto/random.h"
|
| @@ -33,7 +34,7 @@
|
| #include "net/url_request/url_request_status.h"
|
| #include "url/gurl.h"
|
|
|
| -using base::FieldTrialList;
|
| +
|
| using base::StringPrintf;
|
|
|
| namespace {
|
| @@ -45,8 +46,6 @@ const char kUMAProxyStartupStateHistogram[] =
|
| // Key of the UMA DataReductionProxy.ProbeURL histogram.
|
| const char kUMAProxyProbeURL[] = "DataReductionProxy.ProbeURL";
|
|
|
| -const char kEnabled[] = "Enabled";
|
| -
|
| // TODO(marq): Factor this string out into a constant here and in
|
| // http_auth_handler_spdyproxy.
|
| const char kAuthenticationRealmName[] = "SpdyProxy";
|
| @@ -67,51 +66,19 @@ int64 GetInt64PrefValue(const base::ListValue& list_value, size_t index) {
|
|
|
| namespace data_reduction_proxy {
|
|
|
| -bool DataReductionProxySettings::allowed_;
|
| -bool DataReductionProxySettings::promo_allowed_;
|
| -
|
| -// static
|
| -bool DataReductionProxySettings::IsProxyOriginSetOnCommandLine() {
|
| - const CommandLine& command_line = *CommandLine::ForCurrentProcess();
|
| - return command_line.HasSwitch(
|
| - data_reduction_proxy::switches::kDataReductionProxy);
|
| -}
|
| -
|
| -// static
|
| -bool DataReductionProxySettings::IsProxyKeySetOnCommandLine() {
|
| - const CommandLine& command_line = *CommandLine::ForCurrentProcess();
|
| - return command_line.HasSwitch(
|
| - data_reduction_proxy::switches::kEnableDataReductionProxy);
|
| -}
|
| -
|
| -// static
|
| -bool DataReductionProxySettings::IsIncludedInFieldTrialOrFlags() {
|
| - return (base::FieldTrialList::FindFullName(
|
| - "DataCompressionProxyRollout") == kEnabled ||
|
| - IsProxyOriginSetOnCommandLine());
|
| -}
|
| -
|
| -// static
|
| -void DataReductionProxySettings::SetAllowed(bool allowed) {
|
| - allowed_ = allowed;
|
| -}
|
| -
|
| -// static
|
| -void DataReductionProxySettings::SetPromoAllowed(bool promo_allowed) {
|
| - promo_allowed_ = promo_allowed;
|
| -}
|
| -
|
| -DataReductionProxySettings::DataReductionProxySettings()
|
| +DataReductionProxySettings::DataReductionProxySettings(
|
| + DataReductionProxyParams* params)
|
| : restricted_by_carrier_(false),
|
| enabled_by_user_(false),
|
| prefs_(NULL),
|
| local_state_prefs_(NULL),
|
| - url_request_context_getter_(NULL),
|
| - fallback_allowed_(true) {
|
| + url_request_context_getter_(NULL) {
|
| + DCHECK(params);
|
| + params_.reset(params);
|
| }
|
|
|
| DataReductionProxySettings::~DataReductionProxySettings() {
|
| - if (IsDataReductionProxyAllowed())
|
| + if (params_->allowed())
|
| spdy_proxy_auth_enabled_.Destroy();
|
| }
|
|
|
| @@ -122,6 +89,12 @@ void DataReductionProxySettings::InitPrefMembers() {
|
| GetOriginalProfilePrefs(),
|
| base::Bind(&DataReductionProxySettings::OnProxyEnabledPrefChange,
|
| base::Unretained(this)));
|
| + data_reduction_proxy_alternative_enabled_.Init(
|
| + prefs::kDataReductionProxyAltEnabled,
|
| + GetOriginalProfilePrefs(),
|
| + base::Bind(
|
| + &DataReductionProxySettings::OnProxyAlternativeEnabledPrefChange,
|
| + base::Unretained(this)));
|
| }
|
|
|
| void DataReductionProxySettings::InitDataReductionProxySettings(
|
| @@ -139,7 +112,7 @@ void DataReductionProxySettings::InitDataReductionProxySettings(
|
| RecordDataReductionInit();
|
|
|
| // Disable the proxy if it is not allowed to be used.
|
| - if (!IsDataReductionProxyAllowed())
|
| + if (!params_->allowed())
|
| return;
|
|
|
| AddDefaultProxyBypassRules();
|
| @@ -153,49 +126,52 @@ void DataReductionProxySettings::InitDataReductionProxySettings(
|
| PrefService* prefs,
|
| PrefService* local_state_prefs,
|
| net::URLRequestContextGetter* url_request_context_getter,
|
| - scoped_ptr<DataReductionProxyConfigurator> config) {
|
| + scoped_ptr<DataReductionProxyConfigurator> configurator) {
|
| InitDataReductionProxySettings(prefs,
|
| local_state_prefs,
|
| url_request_context_getter);
|
| - SetProxyConfigurator(config.Pass());
|
| + SetProxyConfigurator(configurator.Pass());
|
| }
|
|
|
| void DataReductionProxySettings::SetProxyConfigurator(
|
| scoped_ptr<DataReductionProxyConfigurator> configurator) {
|
| DCHECK(configurator);
|
| - config_ = configurator.Pass();
|
| + configurator_ = configurator.Pass();
|
| }
|
|
|
| // static
|
| void DataReductionProxySettings::InitDataReductionProxySession(
|
| net::HttpNetworkSession* session,
|
| - const std::string& key) {
|
| - // This is a no-op unless the key is set. (even though values for them may be
|
| - // specified on the command line). Authentication will still work if the
|
| - // command line parameters are used, however there will be a round-trip
|
| - // overhead for each challenge/response (typically once per session).
|
| - // TODO(bengr):Pass a configuration struct into
|
| - // DataReductionProxyConfigurator's constructor.
|
| - if (key.empty())
|
| - return;
|
| + const DataReductionProxyParams* params) {
|
| +// This is a no-op unless the authentication parameters are compiled in.
|
| +// (even though values for them may be specified on the command line).
|
| +// Authentication will still work if the command line parameters are used,
|
| +// however there will be a round-trip overhead for each challenge/response
|
| +// (typically once per session).
|
| +// TODO(bengr):Pass a configuration struct into DataReductionProxyConfigurator's
|
| +// constructor. The struct would carry everything in the preprocessor flags.
|
| DCHECK(session);
|
| net::HttpAuthCache* auth_cache = session->http_auth_cache();
|
| DCHECK(auth_cache);
|
| - InitDataReductionAuthentication(auth_cache, key);
|
| + InitDataReductionAuthentication(auth_cache, params);
|
| }
|
|
|
| // static
|
| void DataReductionProxySettings::InitDataReductionAuthentication(
|
| net::HttpAuthCache* auth_cache,
|
| - const std::string& key) {
|
| + const DataReductionProxyParams* params) {
|
| DCHECK(auth_cache);
|
| + DCHECK(params);
|
| int64 timestamp =
|
| (base::Time::Now() - base::Time::UnixEpoch()).InMilliseconds() / 1000;
|
|
|
| - DataReductionProxyList proxies = GetDataReductionProxies();
|
| - for (DataReductionProxyList::iterator it = proxies.begin();
|
| - it != proxies.end(); ++it) {
|
| + DataReductionProxyParams::DataReductionProxyList proxies =
|
| + params->GetAllowedProxies();
|
| + for (DataReductionProxyParams::DataReductionProxyList::iterator it =
|
| + proxies.begin();
|
| + it != proxies.end(); ++it) {
|
| GURL auth_origin = (*it).GetOrigin();
|
| +
|
| int32 rand[3];
|
| crypto::RandBytes(rand, 3 * sizeof(rand[0]));
|
|
|
| @@ -210,7 +186,7 @@ void DataReductionProxySettings::InitDataReductionAuthentication(
|
| rand[0],
|
| rand[1],
|
| rand[2]);
|
| - base::string16 password = AuthHashForSalt(timestamp, key);
|
| + base::string16 password = AuthHashForSalt(timestamp, params->key());
|
|
|
| DVLOG(1) << "origin: [" << auth_origin << "] realm: [" << realm
|
| << "] challenge: [" << challenge << "] password: [" << password << "]";
|
| @@ -227,65 +203,6 @@ void DataReductionProxySettings::InitDataReductionAuthentication(
|
| }
|
| }
|
|
|
| -// TODO(bengr): Use a configuration struct to carry field trial state as well.
|
| -// static
|
| -bool DataReductionProxySettings::IsDataReductionProxyAllowed() {
|
| - return allowed_;
|
| -}
|
| -
|
| -// static
|
| -bool DataReductionProxySettings::IsDataReductionProxyPromoAllowed() {
|
| - return IsProxyOriginSetOnCommandLine() ||
|
| - (IsDataReductionProxyAllowed() && promo_allowed_);
|
| -}
|
| -
|
| -// static
|
| -bool DataReductionProxySettings::IsPreconnectHintingAllowed() {
|
| - if (!IsDataReductionProxyAllowed())
|
| - return false;
|
| - return FieldTrialList::FindFullName("DataCompressionProxyPreconnectHints") ==
|
| - kEnabled;
|
| -}
|
| -
|
| -// static
|
| -std::string DataReductionProxySettings::GetDataReductionProxyOrigin() {
|
| - const CommandLine& command_line = *CommandLine::ForCurrentProcess();
|
| - if (command_line.HasSwitch(switches::kDataReductionProxyDev))
|
| - return command_line.GetSwitchValueASCII(switches::kDataReductionProxyDev);
|
| - if (command_line.HasSwitch(switches::kDataReductionProxy))
|
| - return command_line.GetSwitchValueASCII(switches::kDataReductionProxy);
|
| -#if defined(DATA_REDUCTION_DEV_HOST)
|
| - if (FieldTrialList::FindFullName("DataCompressionProxyDevRollout") ==
|
| - kEnabled) {
|
| - return DATA_REDUCTION_DEV_HOST;
|
| - }
|
| -#endif
|
| -#if defined(SPDY_PROXY_AUTH_ORIGIN)
|
| - return SPDY_PROXY_AUTH_ORIGIN;
|
| -#else
|
| - return std::string();
|
| -#endif
|
| -}
|
| -
|
| -// static
|
| -std::string DataReductionProxySettings::GetDataReductionProxyFallback() {
|
| - // Regardless of what else is defined, only return a value if the main proxy
|
| - // origin is defined.
|
| - if (GetDataReductionProxyOrigin().empty())
|
| - return std::string();
|
| - const CommandLine& command_line = *CommandLine::ForCurrentProcess();
|
| - if (command_line.HasSwitch(switches::kDataReductionProxyFallback)) {
|
| - return command_line.GetSwitchValueASCII(
|
| - switches::kDataReductionProxyFallback);
|
| - }
|
| -#if defined(DATA_REDUCTION_FALLBACK_HOST)
|
| - return DATA_REDUCTION_FALLBACK_HOST;
|
| -#else
|
| - return std::string();
|
| -#endif
|
| -}
|
| -
|
| -// static
|
| bool DataReductionProxySettings::IsAcceptableAuthChallenge(
|
| net::AuthChallengeInfo* auth_info) {
|
| // Challenge realm must start with the authentication realm name.
|
| @@ -295,8 +212,10 @@ bool DataReductionProxySettings::IsAcceptableAuthChallenge(
|
| return false;
|
|
|
| // The challenger must be one of the configured proxies.
|
| - DataReductionProxyList proxies = GetDataReductionProxies();
|
| - for (DataReductionProxyList::iterator it = proxies.begin();
|
| + DataReductionProxyParams::DataReductionProxyList proxies =
|
| + params_->GetAllowedProxies();
|
| + for (DataReductionProxyParams::DataReductionProxyList::iterator it =
|
| + proxies.begin();
|
| it != proxies.end(); ++it) {
|
| net::HostPortPair origin_host = net::HostPortPair::FromURL(*it);
|
| if (origin_host.Equals(auth_info->challenger))
|
| @@ -312,7 +231,7 @@ base::string16 DataReductionProxySettings::GetTokenForAuthChallenge(
|
| std::string realm_suffix =
|
| auth_info->realm.substr(strlen(kAuthenticationRealmName));
|
| if (base::StringToInt64(realm_suffix, &salt)) {
|
| - return AuthHashForSalt(salt, key_);
|
| + return AuthHashForSalt(salt, params_->key());
|
| } else {
|
| DVLOG(1) << "Unable to parse realm name " << auth_info->realm
|
| << "into an int for salting.";
|
| @@ -325,36 +244,21 @@ base::string16 DataReductionProxySettings::GetTokenForAuthChallenge(
|
|
|
| bool DataReductionProxySettings::IsDataReductionProxyEnabled() {
|
| return spdy_proxy_auth_enabled_.GetValue() ||
|
| - IsProxyKeySetOnCommandLine();
|
| + DataReductionProxyParams::IsKeySetOnCommandLine();
|
| }
|
|
|
| -bool DataReductionProxySettings::IsDataReductionProxyManaged() {
|
| - return spdy_proxy_auth_enabled_.IsManaged();
|
| +bool DataReductionProxySettings::IsDataReductionProxyAlternativeEnabled() {
|
| + return data_reduction_proxy_alternative_enabled_.GetValue();
|
| }
|
|
|
| -// static
|
| -DataReductionProxySettings::DataReductionProxyList
|
| -DataReductionProxySettings::GetDataReductionProxies() {
|
| - DataReductionProxyList proxies;
|
| - std::string proxy = GetDataReductionProxyOrigin();
|
| - std::string fallback = GetDataReductionProxyFallback();
|
| -
|
| - if (!proxy.empty())
|
| - proxies.push_back(GURL(proxy));
|
| -
|
| - if (!fallback.empty()) {
|
| - // Sanity check: fallback isn't the only proxy.
|
| - DCHECK(!proxies.empty());
|
| - proxies.push_back(GURL(fallback));
|
| - }
|
| -
|
| - return proxies;
|
| +bool DataReductionProxySettings::IsDataReductionProxyManaged() {
|
| + return spdy_proxy_auth_enabled_.IsManaged();
|
| }
|
|
|
| void DataReductionProxySettings::SetDataReductionProxyEnabled(bool enabled) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| // Prevent configuring the proxy when it is not allowed to be used.
|
| - if (!IsDataReductionProxyAllowed())
|
| + if (!params_->allowed())
|
| return;
|
|
|
| if (spdy_proxy_auth_enabled_.GetValue() != enabled) {
|
| @@ -363,6 +267,18 @@ void DataReductionProxySettings::SetDataReductionProxyEnabled(bool enabled) {
|
| }
|
| }
|
|
|
| +void DataReductionProxySettings::SetDataReductionProxyAlternativeEnabled(
|
| + bool enabled) {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| + // Prevent configuring the proxy when it is not allowed to be used.
|
| + if (!params_->alternative_allowed())
|
| + return;
|
| + if (data_reduction_proxy_alternative_enabled_.GetValue() != enabled) {
|
| + data_reduction_proxy_alternative_enabled_.SetValue(enabled);
|
| + OnProxyAlternativeEnabledPrefChange();
|
| + }
|
| +}
|
| +
|
| int64 DataReductionProxySettings::GetDataReductionLastUpdateTime() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| PrefService* local_state = GetLocalStatePrefs();
|
| @@ -407,6 +323,7 @@ void DataReductionProxySettings::OnURLFetchComplete(
|
| // The current network doesn't block the canary, so don't restrict the
|
| // proxy configurations.
|
| SetProxyConfigs(true /* enabled */,
|
| + IsDataReductionProxyAlternativeEnabled(),
|
| false /* restricted */,
|
| false /* at_startup */);
|
| RecordProbeURLFetchResult(SUCCEEDED_PROXY_ENABLED);
|
| @@ -423,6 +340,7 @@ void DataReductionProxySettings::OnURLFetchComplete(
|
| if (!restricted_by_carrier_) {
|
| // Restrict the proxy.
|
| SetProxyConfigs(true /* enabled */,
|
| + IsDataReductionProxyAlternativeEnabled(),
|
| true /* restricted */,
|
| false /* at_startup */);
|
| RecordProbeURLFetchResult(FAILED_PROXY_DISABLED);
|
| @@ -433,33 +351,28 @@ void DataReductionProxySettings::OnURLFetchComplete(
|
| restricted_by_carrier_ = true;
|
| }
|
|
|
| -void DataReductionProxySettings::OnIPAddressChanged() {
|
| +PrefService* DataReductionProxySettings::GetOriginalProfilePrefs() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| - if (enabled_by_user_) {
|
| - DCHECK(IsDataReductionProxyAllowed());
|
| - ProbeWhetherDataReductionProxyIsAvailable();
|
| - }
|
| + return prefs_;
|
| }
|
|
|
| -void DataReductionProxySettings::OnProxyEnabledPrefChange() {
|
| +PrefService* DataReductionProxySettings::GetLocalStatePrefs() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| - if (!DataReductionProxySettings::IsDataReductionProxyAllowed())
|
| - return;
|
| - MaybeActivateDataReductionProxy(false);
|
| + return local_state_prefs_;
|
| }
|
|
|
| void DataReductionProxySettings::AddDefaultProxyBypassRules() {
|
| // localhost
|
| - config_->AddHostPatternToBypass("<local>");
|
| + configurator_->AddHostPatternToBypass("<local>");
|
| // RFC1918 private addresses.
|
| - config_->AddHostPatternToBypass("10.0.0.0/8");
|
| - config_->AddHostPatternToBypass("172.16.0.0/12");
|
| - config_->AddHostPatternToBypass("192.168.0.0/16");
|
| + configurator_->AddHostPatternToBypass("10.0.0.0/8");
|
| + configurator_->AddHostPatternToBypass("172.16.0.0/12");
|
| + configurator_->AddHostPatternToBypass("192.168.0.0/16");
|
| // RFC4193 private addresses.
|
| - config_->AddHostPatternToBypass("fc00::/7");
|
| + configurator_->AddHostPatternToBypass("fc00::/7");
|
| // IPV6 probe addresses.
|
| - config_->AddHostPatternToBypass("*-ds.metric.gstatic.com");
|
| - config_->AddHostPatternToBypass("*-v4.metric.gstatic.com");
|
| + configurator_->AddHostPatternToBypass("*-ds.metric.gstatic.com");
|
| + configurator_->AddHostPatternToBypass("*-v4.metric.gstatic.com");
|
| }
|
|
|
| void DataReductionProxySettings::LogProxyState(
|
| @@ -480,14 +393,26 @@ void DataReductionProxySettings::LogProxyState(
|
| << " " << (at_startup ? kAtStartup : kByUser);
|
| }
|
|
|
| -PrefService* DataReductionProxySettings::GetOriginalProfilePrefs() {
|
| +void DataReductionProxySettings::OnIPAddressChanged() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| - return prefs_;
|
| + if (enabled_by_user_) {
|
| + DCHECK(params_->allowed());
|
| + ProbeWhetherDataReductionProxyIsAvailable();
|
| + }
|
| }
|
|
|
| -PrefService* DataReductionProxySettings::GetLocalStatePrefs() {
|
| +void DataReductionProxySettings::OnProxyEnabledPrefChange() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| - return local_state_prefs_;
|
| + if (!params_->allowed())
|
| + return;
|
| + MaybeActivateDataReductionProxy(false);
|
| +}
|
| +
|
| +void DataReductionProxySettings::OnProxyAlternativeEnabledPrefChange() {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| + if (!params_->alternative_allowed())
|
| + return;
|
| + MaybeActivateDataReductionProxy(false);
|
| }
|
|
|
| void DataReductionProxySettings::ResetDataReductionStatistics() {
|
| @@ -517,34 +442,42 @@ void DataReductionProxySettings::MaybeActivateDataReductionProxy(
|
| ResetDataReductionStatistics();
|
| }
|
|
|
| - std::string proxy = GetDataReductionProxyOrigin();
|
| - // Configure use of the data reduction proxy if it is enabled and the proxy
|
| - // origin is non-empty.
|
| - enabled_by_user_= IsDataReductionProxyEnabled() && !proxy.empty();
|
| - SetProxyConfigs(enabled_by_user_, restricted_by_carrier_, at_startup);
|
| + // Configure use of the data reduction proxy if it is enabled.
|
| + enabled_by_user_= IsDataReductionProxyEnabled();
|
| + SetProxyConfigs(enabled_by_user_,
|
| + IsDataReductionProxyAlternativeEnabled(),
|
| + restricted_by_carrier_,
|
| + at_startup);
|
|
|
| // Check if the proxy has been restricted explicitly by the carrier.
|
| if (enabled_by_user_)
|
| ProbeWhetherDataReductionProxyIsAvailable();
|
| }
|
|
|
| -void DataReductionProxySettings::SetProxyConfigs(
|
| - bool enabled, bool restricted, bool at_startup) {
|
| +void DataReductionProxySettings::SetProxyConfigs(bool enabled,
|
| + bool alternative_enabled,
|
| + bool restricted,
|
| + bool at_startup) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| - // If |restricted| is true and there is no defined fallback proxy.
|
| - // treat this as a disable.
|
| - std::string fallback = GetDataReductionProxyFallback();
|
| - if (fallback.empty() && enabled && restricted)
|
| - enabled = false;
|
| -
|
| LogProxyState(enabled, restricted, at_startup);
|
| + // The alternative is only configured if the standard configuration is
|
| + // is enabled.
|
| if (enabled) {
|
| - config_->Enable(restricted,
|
| - !fallback_allowed_,
|
| - GetDataReductionProxyOrigin(),
|
| - fallback);
|
| + if (alternative_enabled) {
|
| + configurator_->Enable(restricted,
|
| + !params_->fallback_allowed(),
|
| + params_->alt_origin().spec(),
|
| + params_->alt_fallback_origin().spec(),
|
| + params_->ssl_origin().spec());
|
| + } else {
|
| + configurator_->Enable(restricted,
|
| + !params_->fallback_allowed(),
|
| + params_->origin().spec(),
|
| + params_->fallback_origin().spec(),
|
| + std::string());
|
| + }
|
| } else {
|
| - config_->Disable();
|
| + configurator_->Disable();
|
| }
|
| }
|
|
|
| @@ -552,7 +485,7 @@ void DataReductionProxySettings::SetProxyConfigs(
|
| void DataReductionProxySettings::RecordDataReductionInit() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| ProxyStartupState state = PROXY_NOT_AVAILABLE;
|
| - if (IsDataReductionProxyAllowed()) {
|
| + if (params_->allowed()) {
|
| if (IsDataReductionProxyEnabled())
|
| state = PROXY_ENABLED;
|
| else
|
| @@ -575,6 +508,11 @@ void DataReductionProxySettings::RecordStartupState(ProxyStartupState state) {
|
| PROXY_STARTUP_STATE_COUNT);
|
| }
|
|
|
| +void DataReductionProxySettings::ResetParamsForTest(
|
| + DataReductionProxyParams* params) {
|
| + params_.reset(params);
|
| +}
|
| +
|
| DataReductionProxySettings::ContentLengthList
|
| DataReductionProxySettings::GetDailyContentLengths(const char* pref_name) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| @@ -586,7 +524,7 @@ DataReductionProxySettings::GetDailyContentLengths(const char* pref_name) {
|
| }
|
| }
|
| return content_lengths;
|
| - }
|
| +}
|
|
|
| void DataReductionProxySettings::GetContentLengths(
|
| unsigned int days,
|
| @@ -630,55 +568,21 @@ void DataReductionProxySettings::GetContentLengths(
|
| local_state->GetInt64(prefs::kDailyHttpContentLengthLastUpdateDate);
|
| }
|
|
|
| -std::string DataReductionProxySettings::GetProxyCheckURL() {
|
| - if (!IsDataReductionProxyAllowed())
|
| - return std::string();
|
| - const CommandLine& command_line = *CommandLine::ForCurrentProcess();
|
| - if (command_line.HasSwitch(switches::kDataReductionProxyProbeURL)) {
|
| - return command_line.GetSwitchValueASCII(
|
| - switches::kDataReductionProxyProbeURL);
|
| - }
|
| -#if defined(DATA_REDUCTION_PROXY_PROBE_URL)
|
| - return DATA_REDUCTION_PROXY_PROBE_URL;
|
| -#else
|
| - return std::string();
|
| -#endif
|
| -}
|
| -
|
| // static
|
| base::string16 DataReductionProxySettings::AuthHashForSalt(
|
| int64 salt,
|
| const std::string& key) {
|
| - std::string active_key;
|
| -
|
| - const CommandLine& command_line = *CommandLine::ForCurrentProcess();
|
| - if (command_line.HasSwitch(switches::kDataReductionProxy)) {
|
| - // If an origin is provided via a switch, then only consider the value
|
| - // that is provided by a switch. Do not use the preprocessor constant.
|
| - // Don't expose |key_| to a proxy passed in via the command line.
|
| - if (!command_line.HasSwitch(switches::kDataReductionProxyKey))
|
| - return base::string16();
|
| - active_key = command_line.GetSwitchValueASCII(
|
| - switches::kDataReductionProxyKey);
|
| - } else {
|
| - active_key = key;
|
| - }
|
| - DCHECK(!active_key.empty());
|
| -
|
| std::string salted_key =
|
| base::StringPrintf("%lld%s%lld",
|
| static_cast<long long>(salt),
|
| - active_key.c_str(),
|
| + key.c_str(),
|
| static_cast<long long>(salt));
|
| return base::UTF8ToUTF16(base::MD5String(salted_key));
|
| }
|
|
|
| net::URLFetcher* DataReductionProxySettings::GetURLFetcher() {
|
| DCHECK(url_request_context_getter_);
|
| - std::string url = GetProxyCheckURL();
|
| - if (url.empty())
|
| - return NULL;
|
| - net::URLFetcher* fetcher = net::URLFetcher::Create(GURL(url),
|
| + net::URLFetcher* fetcher = net::URLFetcher::Create(params_->probe_url(),
|
| net::URLFetcher::GET,
|
| this);
|
| fetcher->SetLoadFlags(net::LOAD_DISABLE_CACHE | net::LOAD_BYPASS_PROXY);
|
|
|