Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Unified Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.cc

Issue 792803007: Make Data Reduction Proxy a best effort proxy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updated tests Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.cc
diff --git a/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.cc
similarity index 62%
rename from chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.cc
rename to components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.cc
index a5d41017c4ffadff2a1320907e81d6b77ed0c067..8514313950da4e3236c4082a4ccd3389a553c3d2 100644
--- a/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.cc
@@ -2,15 +2,11 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_configurator.h"
+#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.h"
-#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 "base/values.h"
-#include "chrome/browser/prefs/proxy_prefs.h"
-#include "chrome/common/pref_names.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_event_store.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
#include "net/proxy/proxy_config.h"
@@ -18,58 +14,29 @@
#include "net/proxy/proxy_list.h"
#include "net/proxy/proxy_service.h"
-DataReductionProxyChromeConfigurator::DataReductionProxyChromeConfigurator(
- PrefService* prefs,
+namespace data_reduction_proxy {
+
+DataReductionProxyConfigurator::DataReductionProxyConfigurator(
scoped_refptr<base::SequencedTaskRunner> network_task_runner,
net::NetLog* net_log,
data_reduction_proxy::DataReductionProxyEventStore* event_store)
- : prefs_(prefs),
- network_task_runner_(network_task_runner),
+ : network_task_runner_(network_task_runner),
net_log_(net_log),
data_reduction_proxy_event_store_(event_store) {
- DCHECK(prefs);
DCHECK(network_task_runner.get());
DCHECK(net_log);
DCHECK(event_store);
}
-DataReductionProxyChromeConfigurator::~DataReductionProxyChromeConfigurator() {
+DataReductionProxyConfigurator::~DataReductionProxyConfigurator() {
}
-// static
-void DataReductionProxyChromeConfigurator::DisableInProxyConfigPref(
- 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);
- net::ProxyConfig::ProxyRules proxy_rules;
- proxy_rules.ParseFromString(server);
- // The data reduction proxy uses MODE_FIXED_SERVERS.
- if (mode != ProxyModeToString(ProxyPrefs::MODE_FIXED_SERVERS)
- || !ContainsDataReductionProxy(proxy_rules)) {
- return;
- }
- dict->SetString("mode", ProxyModeToString(ProxyPrefs::MODE_SYSTEM));
- dict->SetString("server", "");
- dict->SetString("bypass_list", "");
-}
-
-void DataReductionProxyChromeConfigurator::Enable(
+void DataReductionProxyConfigurator::Enable(
bool primary_restricted,
bool fallback_restricted,
const std::string& primary_origin,
const std::string& fallback_origin,
const std::string& ssl_origin) {
- DCHECK(prefs_);
- DictionaryPrefUpdate update(prefs_, prefs::kProxy);
- // TODO(bengr): Consider relying on the proxy config for all data reduction
- // proxy configuration.
- base::DictionaryValue* dict = update.Get();
-
std::vector<std::string> proxies;
if (!primary_restricted) {
std::string trimmed_primary;
@@ -84,11 +51,6 @@ void DataReductionProxyChromeConfigurator::Enable(
proxies.push_back(trimmed_fallback);
}
if (proxies.empty()) {
- std::string mode;
- // If already in a disabled mode, do nothing.
- if (dict->GetString("mode", &mode))
- if (ProxyModeToString(ProxyPrefs::MODE_SYSTEM) == mode)
- return;
Disable();
return;
}
@@ -99,10 +61,6 @@ void DataReductionProxyChromeConfigurator::Enable(
std::string server = "http=" + JoinString(proxies, ",") + ",direct://;"
+ (ssl_origin.empty() ? "" : ("https=" + trimmed_ssl + ",direct://;"));
- 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(
@@ -117,29 +75,28 @@ void DataReductionProxyChromeConfigurator::Enable(
network_task_runner_->PostTask(
FROM_HERE,
base::Bind(
- &DataReductionProxyChromeConfigurator::UpdateProxyConfigOnIOThread,
+ &DataReductionProxyConfigurator::UpdateProxyConfigOnIOThread,
base::Unretained(this),
config));
}
-void DataReductionProxyChromeConfigurator::Disable() {
- DisableInProxyConfigPref(prefs_);
+void DataReductionProxyConfigurator::Disable() {
net::ProxyConfig config = net::ProxyConfig::CreateDirect();
data_reduction_proxy_event_store_->AddProxyDisabledEvent(net_log_);
network_task_runner_->PostTask(
FROM_HERE,
base::Bind(
- &DataReductionProxyChromeConfigurator::UpdateProxyConfigOnIOThread,
+ &DataReductionProxyConfigurator::UpdateProxyConfigOnIOThread,
base::Unretained(this),
config));
}
-void DataReductionProxyChromeConfigurator::AddHostPatternToBypass(
+void DataReductionProxyConfigurator::AddHostPatternToBypass(
const std::string& pattern) {
bypass_rules_.push_back(pattern);
}
-void DataReductionProxyChromeConfigurator::AddURLPatternToBypass(
+void DataReductionProxyConfigurator::AddURLPatternToBypass(
const std::string& pattern) {
size_t pos = pattern.find('/');
if (pattern.find('/', pos + 1) == pos + 1)
@@ -155,7 +112,7 @@ void DataReductionProxyChromeConfigurator::AddURLPatternToBypass(
}
// static
-bool DataReductionProxyChromeConfigurator::ContainsDataReductionProxy(
+bool DataReductionProxyConfigurator::ContainsDataReductionProxy(
const net::ProxyConfig::ProxyRules& proxy_rules) {
data_reduction_proxy::DataReductionProxyParams params(
data_reduction_proxy::DataReductionProxyParams::
@@ -184,12 +141,14 @@ bool DataReductionProxyChromeConfigurator::ContainsDataReductionProxy(
return false;
}
-void DataReductionProxyChromeConfigurator::UpdateProxyConfigOnIOThread(
+void DataReductionProxyConfigurator::UpdateProxyConfigOnIOThread(
const net::ProxyConfig& config) {
config_ = config;
}
const net::ProxyConfig&
-DataReductionProxyChromeConfigurator::GetProxyConfigOnIOThread() const {
+DataReductionProxyConfigurator::GetProxyConfigOnIOThread() const {
return config_;
}
+
+} // namespace data_reduction_proxy

Powered by Google App Engine
This is Rietveld 408576698