| 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..1054fde0ffa6a34690caddd65c91ce4e39ea950c 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/sequenced_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::SequencedTaskRunner> 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_, ", "));
|
| + net::ProxyConfig::ID unused_id = 1;
|
| + config.set_id(unused_id);
|
| + network_task_runner_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(
|
| + &DataReductionProxyChromeConfigurator::UpdateProxyConfigOnIO,
|
| + 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::UpdateProxyConfigOnIO,
|
| + base::Unretained(this),
|
| + config));
|
| }
|
|
|
| void DataReductionProxyChromeConfigurator::AddHostPatternToBypass(
|
| @@ -90,3 +115,13 @@ void DataReductionProxyChromeConfigurator::AddURLPatternToBypass(
|
|
|
| AddHostPatternToBypass(host_pattern);
|
| }
|
| +
|
| +void DataReductionProxyChromeConfigurator::UpdateProxyConfigOnIO(
|
| + const net::ProxyConfig& config) {
|
| + config_ = config;
|
| +}
|
| +
|
| +const net::ProxyConfig&
|
| +DataReductionProxyChromeConfigurator::GetProxyConfigOnIO() const {
|
| + return config_;
|
| +}
|
|
|