Index: components/data_reduction_proxy/content/browser/content_lofi_decider.cc |
diff --git a/components/data_reduction_proxy/content/browser/content_lofi_decider.cc b/components/data_reduction_proxy/content/browser/content_lofi_decider.cc |
index 991b00e1e3e4a222d86559ef529e7ddc3dfaf7a0..d1d10d224c5a097bec4514d4efd09110617601cf 100644 |
--- a/components/data_reduction_proxy/content/browser/content_lofi_decider.cc |
+++ b/components/data_reduction_proxy/content/browser/content_lofi_decider.cc |
@@ -9,6 +9,7 @@ |
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_headers.h" |
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h" |
#include "content/public/browser/resource_request_info.h" |
+#include "net/base/load_flags.h" |
#include "net/http/http_request_headers.h" |
namespace data_reduction_proxy { |
@@ -47,6 +48,10 @@ bool ContentLoFiDecider::MaybeAddLoFiDirectiveToHeaders( |
bool lofi_enabled_via_flag_or_field_trial = |
params::IsLoFiOnViaFlags() || params::IsIncludedInLoFiEnabledFieldTrial(); |
+ bool lofi_preview_via_flag_or_field_trial = |
+ params::AreLoFiPreviewsEnabledViaFlags() || |
+ params::IsIncludedInLoFiPreviewFieldTrial(); |
+ |
std::string header_value; |
// User is using Lo-Fi and not part of the "Control" group. |
@@ -56,7 +61,16 @@ bool ContentLoFiDecider::MaybeAddLoFiDirectiveToHeaders( |
headers->RemoveHeader(chrome_proxy_header()); |
header_value += ", "; |
} |
- header_value += chrome_proxy_lo_fi_directive(); |
+ |
+ // Only add the "q=preview" directive on mainframe requests. Otherwise, |
+ // add "q=low" |
+ if (lofi_preview_via_flag_or_field_trial && |
+ (request.load_flags() & net::LOAD_MAIN_FRAME)) { |
+ header_value += chrome_proxy_lo_fi_preview_directive(); |
+ } else { |
+ header_value += chrome_proxy_lo_fi_directive(); |
+ } |
+ |
headers->SetHeader(chrome_proxy_header(), header_value); |
return true; |
} |