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

Unified Diff: components/data_reduction_proxy/content/browser/content_lofi_decider.cc

Issue 2642793005: Create a Lite Page bit for previews and fallback to Lo-Fi (Closed)
Patch Set: remove unused frame_messages.h code Created 3 years, 10 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/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 fdecf634ac272bbba0fbd6f59fe9f8563f57508d..f600474209e79d6a53f1f31e3462e89a25855216 100644
--- a/components/data_reduction_proxy/content/browser/content_lofi_decider.cc
+++ b/components/data_reduction_proxy/content/browser/content_lofi_decider.cc
@@ -24,7 +24,7 @@ ContentLoFiDecider::ContentLoFiDecider() {}
ContentLoFiDecider::~ContentLoFiDecider() {}
-bool ContentLoFiDecider::IsUsingLoFiMode(const net::URLRequest& request) const {
+bool ContentLoFiDecider::IsUsingLoFi(const net::URLRequest& request) const {
const content::ResourceRequestInfo* request_info =
content::ResourceRequestInfo::ForRequest(&request);
// The Lo-Fi directive should not be added for users in the Lo-Fi field
@@ -43,7 +43,7 @@ bool ContentLoFiDecider::IsUsingLoFiMode(const net::URLRequest& request) const {
void ContentLoFiDecider::MaybeSetAcceptTransformHeader(
const net::URLRequest& request,
- bool is_previews_disabled,
+ bool are_previews_disabled,
net::HttpRequestHeaders* headers) const {
const content::ResourceRequestInfo* request_info =
content::ResourceRequestInfo::ForRequest(&request);
@@ -83,7 +83,7 @@ void ContentLoFiDecider::MaybeSetAcceptTransformHeader(
}
// Previews has been disabled.
- if (is_previews_disabled)
+ if (are_previews_disabled)
return;
// Do not add the Chrome-Proxy-Accept-Transform header when the page load
@@ -91,7 +91,7 @@ void ContentLoFiDecider::MaybeSetAcceptTransformHeader(
if (request_info->GetPreviewsState() & content::PREVIEWS_NO_TRANSFORM)
return;
- // LoFi is not allowed on the main frame, stylesheet, script, font resource,
+ // Lo-Fi is not allowed on the main frame, stylesheet, script, font resource,
// media, service worker, or CSP report.
bool resource_type_supports_empty_image =
!(resource_type == content::RESOURCE_TYPE_MAIN_FRAME ||
@@ -101,25 +101,39 @@ void ContentLoFiDecider::MaybeSetAcceptTransformHeader(
resource_type == content::RESOURCE_TYPE_MEDIA ||
resource_type == content::RESOURCE_TYPE_CSP_REPORT);
- // If in the lite page field trial or the lite page flag is enabled, only add
- // the "lite-page" directive on main frame requests. Do not add "empty-image"
- // directives to other requests when Lite Page previews are enabled.
- // Add the "if-heavy" qualifier to allow the server to provide a preview when
- // the page is data heavy on if a preview was not otherwise triggered.
+ // If the Lite Page field trial or flag is enabled, only add the "lite-page"
+ // directive on main frame requests. Only add "empty-image" directives to
+ // other requests when Lite Page previews are not enabled after the main
+ // frame. Add the "if-heavy" qualifier to allow the server to provide a
+ // preview when the page is data heavy on if a preview was not otherwise
+ // triggered.
std::string accept_transform_value;
- if (lite_page_enabled_via_flags_or_field_trial) {
- if (resource_type == content::RESOURCE_TYPE_MAIN_FRAME)
- accept_transform_value = lite_page_directive();
- } else if (lofi_enabled_via_flags_or_field_trial) {
- if (resource_type_supports_empty_image)
- accept_transform_value = empty_image_directive();
+ if (lite_page_enabled_via_flags_or_field_trial &&
+ resource_type == content::RESOURCE_TYPE_MAIN_FRAME) {
+ accept_transform_value = lite_page_directive();
+
+ // Since a Lite Page was not triggered client side, ask the server to
+ // provide a Lite Page only if the page is otherwise data-heavy.
+ if (!(request_info->GetPreviewsState() & content::SERVER_LITE_PAGE_ON))
+ accept_transform_value += base::StringPrintf(";%s", if_heavy_qualifier());
+ } else if (lofi_enabled_via_flags_or_field_trial &&
+ // Only use Lo-Fi if Lite Pages aren't enabled or fallback from
+ // Lite Pages to Lo-Fi is enabled.
+ (!lite_page_enabled_via_flags_or_field_trial ||
+ params::IsLitePageFallbackEnabled()) &&
+ resource_type_supports_empty_image &&
+ !(request_info->GetPreviewsState() &
+ content::SERVER_LITE_PAGE_ON)) {
+ accept_transform_value = empty_image_directive();
+
+ // Since Lo-Fi was not triggered client side, ask the server to provide
+ // Lo-Fi only if the page is otherwise data-heavy.
+ if (!(request_info->GetPreviewsState() & content::SERVER_LOFI_ON))
+ accept_transform_value += base::StringPrintf(";%s", if_heavy_qualifier());
}
if (accept_transform_value.empty())
return;
- if (!(request_info->GetPreviewsState() & content::SERVER_LOFI_ON))
- accept_transform_value += base::StringPrintf(";%s", if_heavy_qualifier());
-
headers->SetHeader(chrome_proxy_accept_transform_header(),
accept_transform_value);
}
@@ -189,7 +203,8 @@ bool ContentLoFiDecider::ShouldRecordLoFiUMA(
// User is not using Lo-Fi.
if (!request_info ||
- !(request_info->GetPreviewsState() & content::SERVER_LOFI_ON)) {
+ !(request_info->GetPreviewsState() & content::SERVER_LOFI_ON ||
+ request_info->GetPreviewsState() & content::SERVER_LITE_PAGE_ON)) {
return false;
}

Powered by Google App Engine
This is Rietveld 408576698