Commit 335d60d5 authored by Robert Ogden's avatar Robert Ogden Committed by Commit Bot

Add a DRP Secure Proxy Holdback

Allows us to add an arm to the Holdback experiment where secure proxies
are disabled for DRP.

Bug: 768597
Change-Id: I66ecfa86f985de262e8f260a5a2d47c863beb0f8
Reviewed-on: https://chromium-review.googlesource.com/c/1292598
Commit-Queue: Robert Ogden <robertogden@chromium.org>
Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601642}
parent e5d2dfa7
......@@ -13,6 +13,7 @@
#include "base/values.h"
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_util.h"
#include "components/data_reduction_proxy/core/browser/network_properties_manager.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
#include "net/proxy_resolution/proxy_config.h"
namespace data_reduction_proxy {
......@@ -80,6 +81,11 @@ net::ProxyConfig DataReductionProxyConfigurator::CreateProxyConfig(
continue;
}
if (!probe_url_config && http_proxy.IsSecureProxy() &&
params::IsIncludedInSecureProxyHoldbackFieldTrial()) {
continue;
}
config.proxy_rules().proxies_for_http.AddProxyServer(
http_proxy.proxy_server());
}
......
......@@ -15,10 +15,6 @@
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_server.h"
#include "net/proxy_resolution/proxy_config.h"
namespace net {
class ProxyServer;
}
namespace data_reduction_proxy {
class NetworkPropertiesManager;
......@@ -30,8 +26,6 @@ class DataReductionProxyConfigurator {
~DataReductionProxyConfigurator();
// Enables data reduction using the proxy servers in |proxies_for_http|.
// TODO: crbug.com/675764: Pass a vector of DataReductionProxyServer
// instead of net::ProxyServer.
void Enable(const NetworkPropertiesManager& network_properties_manager,
const std::vector<DataReductionProxyServer>& proxies_for_http);
......
......@@ -8,6 +8,7 @@
#include <string>
#include <vector>
#include "base/metrics/field_trial.h"
#include "base/test/metrics/histogram_tester.h"
#include "base/test/scoped_task_environment.h"
#include "base/time/default_clock.h"
......@@ -232,6 +233,18 @@ TEST_F(DataReductionProxyConfiguratorTest, TestSecureInsecureCoreRestricted) {
std::string());
}
TEST_F(DataReductionProxyConfiguratorTest, TestSecureRestrictedInHoldback) {
base::FieldTrialList field_trial_list(nullptr);
ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial(
"DataCompressionProxyHoldback", "SecureProxy_Disabled"));
config_->Enable(*manager_,
BuildProxyList("https://www.foo.com:443", ProxyServer::CORE,
"http://www.bar.com:80", ProxyServer::CORE));
CheckProxyConfig(net::ProxyConfig::ProxyRules::Type::PROXY_LIST_PER_SCHEME,
"PROXY www.bar.com:80;DIRECT", std::string());
}
TEST_F(DataReductionProxyConfiguratorTest, TestRestrictedQuic) {
base::HistogramTester histogram_tester;
manager_->SetHasWarmupURLProbeFailed(true, true, true);
......
......@@ -112,6 +112,11 @@ bool IsIncludedInHoldbackFieldTrial() {
return IsIncludedInFieldTrial("DataCompressionProxyHoldback");
}
bool IsIncludedInSecureProxyHoldbackFieldTrial() {
return base::FieldTrialList::FindFullName("DataCompressionProxyHoldback") ==
"SecureProxy_Disabled";
}
std::string HoldbackFieldTrialGroup() {
return base::FieldTrialList::FindFullName("DataCompressionProxyHoldback");
}
......
......@@ -44,6 +44,10 @@ bool IsIncludedInFREPromoFieldTrial();
// is in effect.
bool IsIncludedInHoldbackFieldTrial();
// Returns true if this client is part of a holdback experiment that disables
// the use of secure data compression proxies. Insecure proxies remain enabled.
bool IsIncludedInSecureProxyHoldbackFieldTrial();
// The name of the Holdback experiment group, this can return an empty string if
// not included in a group.
std::string HoldbackFieldTrialGroup();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment