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

Unified Diff: components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc

Issue 1345523005: Added command line flag to override list of proxies from Data Saver API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased on master Created 5 years, 3 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/common/data_reduction_proxy_params.cc
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
index 38a486a327bd04aba5e7a36868dcb4700751a429..2552dde418bb297bb9d4da3f61b8b3e6535c557f 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
@@ -12,6 +12,7 @@
#include "base/metrics/field_trial.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_piece.h"
+#include "base/strings/string_split.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_client_config_parser.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
#include "components/data_reduction_proxy/proto/client_config.pb.h"
@@ -206,6 +207,29 @@ int GetFieldTrialParameterAsInteger(const std::string& group,
return value;
}
+bool GetOverrideProxiesForHttpFromCommandLine(
+ std::vector<net::ProxyServer>* override_proxies_for_http) {
+ DCHECK(override_proxies_for_http);
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kDataReductionProxyHttpProxies)) {
+ return false;
+ }
+
+ override_proxies_for_http->clear();
+
+ std::string proxy_overrides =
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+ switches::kDataReductionProxyHttpProxies);
+ std::vector<std::string> proxy_override_values = base::SplitString(
+ proxy_overrides, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
+ for (const std::string& proxy_override : proxy_override_values) {
+ override_proxies_for_http->push_back(net::ProxyServer::FromURI(
+ proxy_override, net::ProxyServer::SCHEME_HTTP));
+ }
+
+ return true;
+}
+
} // namespace params
void DataReductionProxyParams::EnableQuic(bool enable) {
@@ -230,15 +254,7 @@ DataReductionProxyTypeInfo::~DataReductionProxyTypeInfo(){
}
DataReductionProxyParams::DataReductionProxyParams(int flags)
- : allowed_((flags & kAllowed) == kAllowed),
- fallback_allowed_((flags & kFallbackAllowed) == kFallbackAllowed),
- promo_allowed_((flags & kPromoAllowed) == kPromoAllowed),
- holdback_((flags & kHoldback) == kHoldback),
- quic_enabled_(false),
- configured_on_command_line_(false) {
- bool result = Init(allowed_, fallback_allowed_);
- DCHECK(result);
-}
+ : DataReductionProxyParams(flags, true) {}
DataReductionProxyParams::~DataReductionProxyParams() {
}
@@ -250,7 +266,8 @@ DataReductionProxyParams::DataReductionProxyParams(int flags,
promo_allowed_((flags & kPromoAllowed) == kPromoAllowed),
holdback_((flags & kHoldback) == kHoldback),
quic_enabled_(false),
- configured_on_command_line_(false) {
+ configured_on_command_line_(false),
+ use_override_proxies_for_http_(false) {
if (should_call_init) {
bool result = Init(allowed_, fallback_allowed_);
DCHECK(result);
@@ -291,10 +308,13 @@ bool DataReductionProxyParams::Init(bool allowed, bool fallback_allowed) {
return false;
}
return true;
-
}
void DataReductionProxyParams::InitWithoutChecks() {
+ use_override_proxies_for_http_ =
+ params::GetOverrideProxiesForHttpFromCommandLine(
+ &override_proxies_for_http_);
+
const base::CommandLine& command_line =
*base::CommandLine::ForCurrentProcess();
std::string origin;
@@ -364,6 +384,8 @@ bool DataReductionProxyParams::UsingHTTPTunnel(
const std::vector<net::ProxyServer>&
DataReductionProxyParams::proxies_for_http() const {
+ if (use_override_proxies_for_http_)
+ return override_proxies_for_http_;
return proxies_for_http_;
}

Powered by Google App Engine
This is Rietveld 408576698