Chromium Code Reviews| Index: chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.cc |
| diff --git a/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.cc b/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.cc |
| index cb9e788a19141c70da51ee1a9136e3174f006b5a..dbf3e02b5d82f1b2cdc3d835c4c42070379db1c6 100644 |
| --- a/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.cc |
| +++ b/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.cc |
| @@ -10,6 +10,7 @@ |
| #include "base/strings/string_util.h" |
| #include "chrome/browser/prefs/proxy_prefs.h" |
| #include "chrome/common/pref_names.h" |
| +#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_params.h" |
| #include "net/proxy/proxy_config.h" |
| #include "net/proxy/proxy_info.h" |
| #include "net/proxy/proxy_service.h" |
| @@ -23,6 +24,24 @@ DataReductionProxyChromeConfigurator::DataReductionProxyChromeConfigurator( |
| DataReductionProxyChromeConfigurator::~DataReductionProxyChromeConfigurator() { |
| } |
| +// static |
| +void DataReductionProxyChromeConfigurator::Disable(PrefService* prefs) { |
| + DCHECK(prefs); |
| + DictionaryPrefUpdate update(prefs, prefs::kProxy); |
| + base::DictionaryValue* dict = update.Get(); |
| + std::string mode; |
| + dict->GetString("mode", &mode); |
| + std::string server; |
| + dict->GetString("server", &server); |
| + if (mode != ProxyModeToString(ProxyPrefs::MODE_FIXED_SERVERS) |
| + || !ContainsDataReductionProxy(server)) |
| + return; |
|
bengr
2014/10/28 21:03:41
I prefer using curly braces when the if clause spa
Not at Google. Contact bengr
2014/10/28 22:31:44
Done.
|
| + |
| + dict->SetString("mode", ProxyModeToString(ProxyPrefs::MODE_SYSTEM)); |
| + dict->SetString("server", ""); |
| + dict->SetString("bypass_list", ""); |
| +} |
| + |
| void DataReductionProxyChromeConfigurator::Enable( |
| bool primary_restricted, |
| bool fallback_restricted, |
| @@ -85,12 +104,7 @@ void DataReductionProxyChromeConfigurator::Enable( |
| } |
| void DataReductionProxyChromeConfigurator::Disable() { |
| - DCHECK(prefs_); |
| - DictionaryPrefUpdate update(prefs_, prefs::kProxy); |
| - base::DictionaryValue* dict = update.Get(); |
| - dict->SetString("mode", ProxyModeToString(ProxyPrefs::MODE_SYSTEM)); |
| - dict->SetString("server", ""); |
| - dict->SetString("bypass_list", ""); |
| + Disable(prefs_); |
| net::ProxyConfig config = net::ProxyConfig::CreateDirect(); |
| network_task_runner_->PostTask( |
| FROM_HERE, |
| @@ -120,6 +134,24 @@ void DataReductionProxyChromeConfigurator::AddURLPatternToBypass( |
| AddHostPatternToBypass(host_pattern); |
| } |
| +// static |
| +bool DataReductionProxyChromeConfigurator::ContainsDataReductionProxy( |
|
bengr
2014/10/28 21:03:41
Why can't you use DRPParams::IsDataReductionProxy?
Not at Google. Contact bengr
2014/10/28 22:31:44
Done.
|
| + const std::string& server) { |
| + data_reduction_proxy::DataReductionProxyParams params(0); |
| + return HasProxy(server, params.origin()) || |
| + HasProxy(server, params.fallback_origin()) || |
| + HasProxy(server, params.alt_origin()) || |
| + HasProxy(server, params.ssl_origin()); |
| +} |
| + |
| +// static |
| +bool DataReductionProxyChromeConfigurator::HasProxy(const std::string& server, |
|
bengr
2014/10/28 21:03:41
I don't think you'll need this if you use the meth
Not at Google. Contact bengr
2014/10/28 22:31:44
Done.
|
| + const GURL& proxy) { |
| + std::string trimmed_proxy_url; |
| + base::TrimString(proxy.spec(), "/", &trimmed_proxy_url); |
| + return server.find(trimmed_proxy_url) != std::string::npos; |
| +} |
| + |
| void DataReductionProxyChromeConfigurator::UpdateProxyConfigOnIO( |
| const net::ProxyConfig& config) { |
| config_ = config; |