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 1201cf0e19838275ccd5640411f073af5c667f40..d81c79a3e1112aab45a622801a04e6493e1ee72a 100644 |
| --- a/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.cc |
| +++ b/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.cc |
| @@ -6,13 +6,18 @@ |
| #include "base/prefs/pref_service.h" |
| #include "base/prefs/scoped_user_pref_update.h" |
| +#include "base/single_thread_task_runner.h" |
| #include "base/strings/string_util.h" |
| #include "chrome/browser/prefs/proxy_prefs.h" |
| #include "chrome/common/pref_names.h" |
| +#include "net/proxy/proxy_config.h" |
| +#include "net/proxy/proxy_info.h" |
| +#include "net/proxy/proxy_service.h" |
| DataReductionProxyChromeConfigurator::DataReductionProxyChromeConfigurator( |
| - PrefService* prefs) : prefs_(prefs) { |
| - DCHECK(prefs); |
| + PrefService* prefs, |
| + scoped_refptr<base::SingleThreadTaskRunner> network_task_runner) |
| + : prefs_(prefs), network_task_runner_(network_task_runner) { |
| } |
| DataReductionProxyChromeConfigurator::~DataReductionProxyChromeConfigurator() { |
| @@ -60,6 +65,19 @@ void DataReductionProxyChromeConfigurator::Enable( |
| dict->SetString("server", server); |
| dict->SetString("mode", ProxyModeToString(ProxyPrefs::MODE_FIXED_SERVERS)); |
| dict->SetString("bypass_list", JoinString(bypass_rules_, ", ")); |
| + |
| + net::ProxyConfig config; |
| + config.proxy_rules().ParseFromString(server); |
| + config.proxy_rules().bypass_rules.ParseFromString( |
| + JoinString(bypass_rules_, ", ")); |
|
marq (ping after 24h)
2014/08/11 16:11:33
Indent.
bengr
2014/08/11 23:03:19
Done.
|
| + net::ProxyConfig::ID unused_id = 1; |
| + config.set_id(unused_id); |
| + network_task_runner_->PostTask( |
| + FROM_HERE, |
| + base::Bind( |
| + &DataReductionProxyChromeConfigurator::UpdateProxyConfigOnIOThread, |
| + base::Unretained(this), |
| + config)); |
| } |
| void DataReductionProxyChromeConfigurator::Disable() { |
| @@ -69,6 +87,13 @@ void DataReductionProxyChromeConfigurator::Disable() { |
| dict->SetString("mode", ProxyModeToString(ProxyPrefs::MODE_SYSTEM)); |
| dict->SetString("server", ""); |
| dict->SetString("bypass_list", ""); |
| + net::ProxyConfig config = net::ProxyConfig::CreateDirect(); |
| + network_task_runner_->PostTask( |
| + FROM_HERE, |
| + base::Bind( |
| + &DataReductionProxyChromeConfigurator::UpdateProxyConfigOnIOThread, |
| + base::Unretained(this), |
| + config)); |
| } |
| void DataReductionProxyChromeConfigurator::AddHostPatternToBypass( |
| @@ -90,3 +115,14 @@ void DataReductionProxyChromeConfigurator::AddURLPatternToBypass( |
| AddHostPatternToBypass(host_pattern); |
| } |
| + |
| +void DataReductionProxyChromeConfigurator::UpdateProxyConfigOnIOThread( |
| + const net::ProxyConfig& config) { |
| + config_ = config; |
| +} |
| + |
| +void DataReductionProxyChromeConfigurator::GetProxyConfigOnIO( |
| + net::ProxyConfig* config) { |
| + DCHECK(config); |
| + *config = config_; |
| +} |