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

Unified Diff: components/data_reduction_proxy/browser/data_reduction_proxy_params.h

Issue 388663002: Added data reduction proxy holdback experiment (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 5 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/browser/data_reduction_proxy_params.h
diff --git a/components/data_reduction_proxy/browser/data_reduction_proxy_params.h b/components/data_reduction_proxy/browser/data_reduction_proxy_params.h
index 7a8e9f4c9154f8d0e2dce7ad440516dc6b601b51..fbcc394d0358b2bfa1e93a44a4f1be4e452c97c1 100644
--- a/components/data_reduction_proxy/browser/data_reduction_proxy_params.h
+++ b/components/data_reduction_proxy/browser/data_reduction_proxy_params.h
@@ -24,10 +24,15 @@ namespace data_reduction_proxy {
// the necessary DNS names to configure use of the data reduction proxy.
class DataReductionProxyParams {
public:
+ // Flags used during construction that specify if the data reduction proxy
+ // is allowed to be used, if the fallback proxy is allowed to be used, if
+ // an alternative set of proxies is allowed to be used, if the promotion is
+ // allowed to be shown, and if this instance is part of a holdback experiment.
static const unsigned int kAllowed = (1 << 0);
static const unsigned int kFallbackAllowed = (1 << 1);
static const unsigned int kAlternativeAllowed = (1 << 2);
static const unsigned int kPromoAllowed = (1 << 3);
+ static const unsigned int kHoldback = (1 << 4);
typedef std::vector<GURL> DataReductionProxyList;
@@ -51,6 +56,13 @@ class DataReductionProxyParams {
// proxy if the request resource type is on the critical path (e.g. HTML).
static bool IsIncludedInCriticalPathBypassFieldTrial();
+ // Returns true if this client is part of a field trial that runs a holdback
+ // experiment. A holdback experiment is one in which a fraction of browser
+ // instances will not be configured to use the data reduction proxy even if
+ // users have enabled it to be used. The UI will not indicate that a holdback
+ // is in effect.
+ static bool IsIncludedInHoldbackFieldTrial();
+
// Constructs configuration parameters. If |kAllowed|, then the standard
// data reduction proxy configuration is allowed to be used. If
// |kfallbackAllowed| a fallback proxy can be used if the primary proxy is
@@ -151,6 +163,12 @@ class DataReductionProxyParams {
return promo_allowed_;
}
+ // Returns true if the data reduction proxy should not actually use the
+ // proxy if enabled.
+ bool holdback() const {
+ return holdback_;
+ }
+
// Given |allowed_|, |fallback_allowed_|, and |alt_allowed_|, returns the
// list of data reduction proxies that may be used.
DataReductionProxyList GetAllowedProxies() const;
@@ -198,6 +216,7 @@ class DataReductionProxyParams {
const bool fallback_allowed_;
bool alt_allowed_;
const bool promo_allowed_;
+ bool holdback_;
bool configured_on_command_line_;

Powered by Google App Engine
This is Rietveld 408576698