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

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

Issue 2889993004: New CPAT support in DataReductionProxyConfig guarded by feature flag. (Closed)
Patch Set: Added const-ness to PreviewDecider arg Created 3 years, 7 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_config.cc
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc
index 36a1192af49a824059651cec89938ab4687cec9f..db362f92159629a3ed9d0d13feb8733a59d79016 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc
@@ -27,10 +27,10 @@
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_config_values.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_event_creator.h"
+#include "components/data_reduction_proxy/core/common/data_reduction_proxy_features.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
#include "components/data_use_measurement/core/data_use_user_data.h"
#include "components/previews/core/previews_decider.h"
-#include "components/previews/core/previews_experiments.h"
#include "components/variations/variations_associated_data.h"
#include "net/base/host_port_pair.h"
#include "net/base/load_flags.h"
@@ -1004,12 +1004,15 @@ bool DataReductionProxyConfig::IsEffectiveConnectionTypeSlowerThanThreshold(
bool DataReductionProxyConfig::ShouldEnableLoFi(
const net::URLRequest& request,
- previews::PreviewsDecider* previews_decider) {
- DCHECK(previews_decider);
+ const previews::PreviewsDecider& previews_decider) {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK((request.load_flags() & net::LOAD_MAIN_FRAME_DEPRECATED) != 0);
DCHECK(!request.url().SchemeIsCryptographic());
+ if (base::FeatureList::IsEnabled(
+ features::kDataReductionProxyDecidesTransform))
megjablon 2017/05/22 23:58:57 Can this check just be moved inside the Internal m
dougarnett 2017/05/23 16:28:44 My intention is to delete the *Internal methods in
+ return ShouldAcceptServerLoFi(request, previews_decider);
+
bool enable_lofi = ShouldEnableLoFiInternal(request, previews_decider);
if (params::IsLoFiSlowConnectionsOnlyViaFlags() ||
@@ -1024,12 +1027,15 @@ bool DataReductionProxyConfig::ShouldEnableLoFi(
bool DataReductionProxyConfig::ShouldEnableLitePages(
const net::URLRequest& request,
- previews::PreviewsDecider* previews_decider) {
- DCHECK(previews_decider);
+ const previews::PreviewsDecider& previews_decider) {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK((request.load_flags() & net::LOAD_MAIN_FRAME_DEPRECATED) != 0);
DCHECK(!request.url().SchemeIsCryptographic());
+ if (base::FeatureList::IsEnabled(
+ features::kDataReductionProxyDecidesTransform))
megjablon 2017/05/22 23:58:57 Same here
dougarnett 2017/05/23 16:28:45 Acknowledged.
+ return ShouldAcceptLitePages(request, previews_decider);
+
return ShouldEnableLitePagesInternal(request, previews_decider);
}
@@ -1038,30 +1044,104 @@ bool DataReductionProxyConfig::enabled_by_user_and_reachable() const {
return enabled_by_user_ && !unreachable_;
}
-bool DataReductionProxyConfig::ShouldEnableLoFiInternal(
+bool DataReductionProxyConfig::IsBlackListedOrDisabled(
const net::URLRequest& request,
- previews::PreviewsDecider* previews_decider) {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- last_query_ = GetTicksNow();
- network_quality_at_last_query_ = NETWORK_QUALITY_AT_LAST_QUERY_UNKNOWN;
-
+ const previews::PreviewsDecider& previews_decider,
+ previews::PreviewsType previews_type) {
+ // Make sure request is not locally blacklisted.
if (params::IsBlackListEnabledForServerPreviews()) {
// Pass in net::EFFECTIVE_CONNECTION_TYPE_4G as the thresold as network
// speed is checked in IsNetworkQualityProhibitivelySlow().
- // TODO(ryansturm): Use the correct ECT value. crbug.com/720102
- if (!previews_decider->ShouldAllowPreviewAtECT(
- request, previews::PreviewsType::LOFI,
- net::EFFECTIVE_CONNECTION_TYPE_4G)) {
- return false;
- }
- } else if (lofi_off_) {
+ // TODO(ryansturm): Use the correct ECT value (or add new method to
+ // just check blacklist). crbug.com/720102
+ return !previews_decider.ShouldAllowPreviewAtECT(
+ request, previews_type, net::EFFECTIVE_CONNECTION_TYPE_4G);
+ } else {
// If Lo-Fi has been turned off, its status can't change. This Lo-Fi bit
// will be removed when Lo-Fi and Lite Pages are moved over to using the
// PreviewsBlackList.
+ return lofi_off_;
+ }
+}
+
+bool DataReductionProxyConfig::ShouldAcceptServerLoFi(
+ const net::URLRequest& request,
+ const previews::PreviewsDecider& previews_decider) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ DCHECK(base::FeatureList::IsEnabled(
+ features::kDataReductionProxyDecidesTransform));
+
+ // LitePages overrides Server Lo-Fi. Server will direct Server Lo-Fi for
+ // resources if applicable.
+ if (ShouldEnableLitePages(request, previews_decider)) {
return false;
}
+ if (IsBlackListedOrDisabled(request, previews_decider,
+ previews::PreviewsType::LOFI))
+ return false;
+
+ if (params::IsLoFiAlwaysOnViaFlags())
+ return true;
+
+ if (params::IsLoFiCellularOnlyViaFlags()) {
+ return net::NetworkChangeNotifier::IsConnectionCellular(connection_type_);
+ }
+
+ if (params::IsLoFiSlowConnectionsOnlyViaFlags() ||
+ params::IsIncludedInLoFiEnabledFieldTrial()) {
+ // Accept Lo-Fi from the data reduction proxy (it will handle the effective
+ // connection type check).
+ return true;
+ }
+
+ return false;
+}
+
+bool DataReductionProxyConfig::ShouldAcceptLitePages(
+ const net::URLRequest& request,
+ const previews::PreviewsDecider& previews_decider) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ DCHECK(base::FeatureList::IsEnabled(
+ features::kDataReductionProxyDecidesTransform));
+
+ if (IsBlackListedOrDisabled(request, previews_decider,
+ previews::PreviewsType::LITE_PAGE))
+ return false;
+
+ if (params::IsLoFiAlwaysOnViaFlags() && params::AreLitePagesEnabledViaFlags())
+ return true;
+
+ if (params::IsLoFiCellularOnlyViaFlags() &&
+ params::AreLitePagesEnabledViaFlags()) {
+ return net::NetworkChangeNotifier::IsConnectionCellular(connection_type_);
+ }
+
+ if ((params::IsLoFiSlowConnectionsOnlyViaFlags() &&
+ params::AreLitePagesEnabledViaFlags()) ||
+ params::IsIncludedInLitePageFieldTrial()) {
+ // Accept LitePages from the data reduction proxy (it will handle the
+ // effective connection type check).
+ return true;
+ }
+
+ return false;
+}
+
+bool DataReductionProxyConfig::ShouldEnableLoFiInternal(
+ const net::URLRequest& request,
+ const previews::PreviewsDecider& previews_decider) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ DCHECK(!base::FeatureList::IsEnabled(
+ features::kDataReductionProxyDecidesTransform));
+
+ last_query_ = GetTicksNow();
+ network_quality_at_last_query_ = NETWORK_QUALITY_AT_LAST_QUERY_UNKNOWN;
+
+ if (IsBlackListedOrDisabled(request, previews_decider,
+ previews::PreviewsType::LOFI))
megjablon 2017/05/22 23:58:57 Use braces
dougarnett 2017/05/23 16:28:44 Done.
+ return false;
+
if (params::IsLoFiAlwaysOnViaFlags())
return true;
@@ -1085,24 +1165,14 @@ bool DataReductionProxyConfig::ShouldEnableLoFiInternal(
bool DataReductionProxyConfig::ShouldEnableLitePagesInternal(
const net::URLRequest& request,
- previews::PreviewsDecider* previews_decider) {
+ const previews::PreviewsDecider& previews_decider) {
DCHECK(thread_checker_.CalledOnValidThread());
+ DCHECK(!base::FeatureList::IsEnabled(
+ features::kDataReductionProxyDecidesTransform));
- if (params::IsBlackListEnabledForServerPreviews()) {
- // Pass in net::EFFECTIVE_CONNECTION_TYPE_4G as the thresold as network
- // speed is checked in IsNetworkQualityProhibitivelySlow().
- // TODO(ryansturm): Use the correct ECT value. crbug.com/720102
- if (!previews_decider->ShouldAllowPreviewAtECT(
- request, previews::PreviewsType::LITE_PAGE,
- net::EFFECTIVE_CONNECTION_TYPE_4G)) {
- return false;
- }
- } else if (lofi_off_) {
- // If Lo-Fi has been turned off, its status can't change. This Lo-Fi bit
- // will be removed when Lo-Fi and Lite Pages are moved over to using the
- // PreviewsBlackList.
+ if (IsBlackListedOrDisabled(request, previews_decider,
+ previews::PreviewsType::LITE_PAGE))
megjablon 2017/05/22 23:58:57 Use braces
dougarnett 2017/05/23 16:28:45 Done.
return false;
- }
if (params::IsLoFiAlwaysOnViaFlags() && params::AreLitePagesEnabledViaFlags())
return true;

Powered by Google App Engine
This is Rietveld 408576698