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

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

Issue 1162903008: Add field trial handling to enable the Data Reduction Proxy config service. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: bengr CR comment Created 5 years, 6 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 612ed3811adede94593b8c58d19dedabd03a8341..8893fcb9fc601864c1dd58338da7d1a9546559d8 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
@@ -14,6 +14,7 @@
#include "base/values.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/variations/variations_associated_data.h"
#include "net/base/host_port_pair.h"
#include "net/proxy/proxy_server.h"
#include "url/url_constants.h"
@@ -47,6 +48,12 @@ const char kQuicFieldTrial[] = "DataReductionProxyUseQuic";
const char kLoFiFieldTrial[] = "DataReductionProxyLoFi";
+const char kConfigServiceFieldTrial[] = "DataReductionProxyConfigService";
+const char kConfigServiceURLParam[] = "url";
+
+// Default URL for retrieving the Data Reduction Proxy configuration.
+const char kClientConfigURL[] = "";
+
const char kConfigScheme[] = "scheme";
const char kConfigHost[] = "host";
const char kConfigPort[] = "port";
@@ -149,8 +156,39 @@ bool DataReductionProxyParams::IsIncludedInUseDataSaverOnVPNFieldTrial() {
// static
bool DataReductionProxyParams::IsConfigClientEnabled() {
+ std::string group_value =
+ base::FieldTrialList::FindFullName(kConfigServiceFieldTrial);
+ base::StringPiece group = group_value;
return base::CommandLine::ForCurrentProcess()->HasSwitch(
- data_reduction_proxy::switches::kEnableDataReductionProxyConfigClient);
+ data_reduction_proxy::switches::
+ kEnableDataReductionProxyConfigClient) ||
+ group.starts_with(kEnabled);
+}
+
+// static
+GURL DataReductionProxyParams::GetConfigServiceURL() {
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ std::string url;
+ if (command_line->HasSwitch(switches::kDataReductionProxyConfigURL)) {
+ url = command_line->GetSwitchValueASCII(
+ switches::kDataReductionProxyConfigURL);
+ }
+
+ if (url.empty()) {
+ url = variations::GetVariationParamValue(kConfigServiceFieldTrial,
+ kConfigServiceURLParam);
+ }
+
+ if (url.empty())
+ return GURL(kClientConfigURL);
+
+ GURL result(url);
+ if (result.is_valid())
+ return result;
+
+ LOG(WARNING) << "The following client config URL specified at the "
+ << "command-line or variation is invalid: " << url;
+ return GURL(kClientConfigURL);
}
// static

Powered by Google App Engine
This is Rietveld 408576698