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

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

Issue 2073233002: Do not trigger Lo-Fi on main frame requests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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_unittest.cc
diff --git a/components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc b/components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc
index 8d8e633095cf5989f09e29988bcfa69365f5b0f7..ce8777c64e69ab3c188db2e8a73aafb2f101f712 100644
--- a/components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc
+++ b/components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc
@@ -174,8 +174,11 @@ TEST_F(ContentLoFiDeciderTest, LoFiFlags) {
const struct {
bool is_using_lofi;
bool is_using_previews;
+ bool is_main_frame;
} tests[] = {
- {false, false}, {true, false}, {false, true}, {true, true},
+ {false, false, false}, {false, false, true}, {true, false, true},
+ {true, false, false}, {false, true, false}, {false, true, true},
+ {true, true, true}, {true, true, false},
};
for (size_t i = 0; i < arraysize(tests); ++i) {
@@ -200,15 +203,21 @@ TEST_F(ContentLoFiDeciderTest, LoFiFlags) {
command_line->AppendSwitchASCII(
switches::kDataReductionProxyLoFi,
switches::kDataReductionProxyLoFiValueAlwaysOn);
- request->SetLoadFlags(request->load_flags() | net::LOAD_MAIN_FRAME);
+ if (tests[i].is_main_frame)
+ request->SetLoadFlags(request->load_flags() | net::LOAD_MAIN_FRAME);
headers.Clear();
NotifyBeforeSendProxyHeaders(&headers, request.get(), true);
- VerifyLoFiHeader(tests[i].is_using_lofi && !tests[i].is_using_previews,
+ VerifyLoFiHeader(tests[i].is_using_lofi && !tests[i].is_using_previews &&
+ !tests[i].is_main_frame,
headers);
- VerifyLoFiPreviewHeader(
- tests[i].is_using_lofi && tests[i].is_using_previews, headers);
- VerifyLoFiIgnorePreviewBlacklistHeader(
- tests[i].is_using_lofi && tests[i].is_using_previews, headers);
+ VerifyLoFiPreviewHeader(tests[i].is_using_lofi &&
+ tests[i].is_using_previews &&
+ tests[i].is_main_frame,
+ headers);
+ VerifyLoFiIgnorePreviewBlacklistHeader(tests[i].is_using_lofi &&
+ tests[i].is_using_previews &&
+ tests[i].is_main_frame,
+ headers);
// The Lo-Fi flag is "always-on" and Lo-Fi is being used. Lo-Fi header
// should be added.
@@ -253,16 +262,18 @@ TEST_F(ContentLoFiDeciderTest, LoFiEnabledFieldTrial) {
// Enable Lo-Fi.
const struct {
bool is_using_lofi;
- } tests[] = {
- {false}, {true},
- };
+ bool is_main_frame;
+ } tests[] = {{false, false}, {false, true}, {true, false}, {true, true}};
for (size_t i = 0; i < arraysize(tests); ++i) {
std::unique_ptr<net::URLRequest> request =
CreateRequest(tests[i].is_using_lofi);
+ if (tests[i].is_main_frame)
+ request->SetLoadFlags(request->load_flags() | net::LOAD_MAIN_FRAME);
net::HttpRequestHeaders headers;
NotifyBeforeSendProxyHeaders(&headers, request.get(), true);
- VerifyLoFiHeader(tests[i].is_using_lofi, headers);
+ VerifyLoFiHeader(tests[i].is_using_lofi && !tests[i].is_main_frame,
+ headers);
VerifyLoFiPreviewHeader(false, headers);
VerifyLoFiIgnorePreviewBlacklistHeader(false, headers);
}
@@ -275,13 +286,14 @@ TEST_F(ContentLoFiDeciderTest, LoFiControlFieldTrial) {
// Enable Lo-Fi.
const struct {
bool is_using_lofi;
- } tests[] = {
- {false}, {true},
- };
+ bool is_main_frame;
+ } tests[] = {{false, false}, {false, true}, {true, false}, {true, true}};
for (size_t i = 0; i < arraysize(tests); ++i) {
std::unique_ptr<net::URLRequest> request =
CreateRequest(tests[i].is_using_lofi);
+ if (tests[i].is_main_frame)
+ request->SetLoadFlags(request->load_flags() | net::LOAD_MAIN_FRAME);
net::HttpRequestHeaders headers;
NotifyBeforeSendProxyHeaders(&headers, request.get(), true);
VerifyLoFiHeader(false, headers);
@@ -321,24 +333,25 @@ TEST_F(ContentLoFiDeciderTest, AutoLoFi) {
bool auto_lofi_enabled_group;
bool auto_lofi_control_group;
bool network_prohibitively_slow;
+ bool is_main_frame;
} tests[] = {
- {false, false, false},
- {false, false, true},
- {true, false, false},
- {true, false, true},
- {false, true, false},
- {false, true, true},
+ {false, false, false, false},
+ {false, false, true, false},
+ {true, false, false, false},
+ {true, false, true, false},
+ {true, false, true, true},
+ {false, true, false, false},
+ {false, true, true, false},
// Repeat this test data to simulate user moving out of Lo-Fi control
// experiment.
- {false, true, false},
+ {false, true, false, false},
};
for (size_t i = 0; i < arraysize(tests); ++i) {
test_context_->config()->ResetLoFiStatusForTest();
- // Lo-Fi header is expected only if session is part of Lo-Fi enabled field
- // trial and network is prohibitively slow.
- bool expect_lofi_header =
- tests[i].auto_lofi_enabled_group && tests[i].network_prohibitively_slow;
+ const bool expect_lofi_header = tests[i].auto_lofi_enabled_group &&
+ tests[i].network_prohibitively_slow &&
+ !tests[i].is_main_frame;
base::FieldTrialList field_trial_list(nullptr);
if (tests[i].auto_lofi_enabled_group) {
@@ -356,6 +369,8 @@ TEST_F(ContentLoFiDeciderTest, AutoLoFi) {
std::unique_ptr<net::URLRequest> request =
CreateRequest(tests[i].network_prohibitively_slow);
+ if (tests[i].is_main_frame)
+ request->SetLoadFlags(request->load_flags() | net::LOAD_MAIN_FRAME);
net::HttpRequestHeaders headers;
NotifyBeforeSendProxyHeaders(&headers, request.get(), true);
@@ -368,11 +383,13 @@ TEST_F(ContentLoFiDeciderTest, SlowConnectionsFlag) {
bool slow_connections_flag_enabled;
bool network_prohibitively_slow;
bool auto_lofi_enabled_group;
-
+ bool is_main_frame;
} tests[] = {
- {false, false, false}, {false, true, false}, {true, false, false},
- {true, true, false}, {false, false, true}, {false, true, true},
- {true, false, true}, {true, true, true},
+ {false, false, false, false}, {false, true, false, false},
+ {true, false, false, false}, {true, true, false, false},
+ {true, true, false, true}, {false, false, true, false},
+ {false, false, true, true}, {false, true, true, false},
+ {true, false, true, false}, {true, true, true, false},
};
for (size_t i = 0; i < arraysize(tests); ++i) {
@@ -381,11 +398,12 @@ TEST_F(ContentLoFiDeciderTest, SlowConnectionsFlag) {
// Connection Flag is enabled or session is part of Lo-Fi enabled field
// trial. For both cases, an additional condition is that network must be
// prohibitively slow.
- bool expect_lofi_header = (tests[i].slow_connections_flag_enabled &&
- tests[i].network_prohibitively_slow) ||
- (!tests[i].slow_connections_flag_enabled &&
- tests[i].auto_lofi_enabled_group &&
- tests[i].network_prohibitively_slow);
+ const bool expect_lofi_header = ((tests[i].slow_connections_flag_enabled &&
+ tests[i].network_prohibitively_slow) ||
+ (!tests[i].slow_connections_flag_enabled &&
+ tests[i].auto_lofi_enabled_group &&
+ tests[i].network_prohibitively_slow)) &&
+ !tests[i].is_main_frame;
std::string expected_header;
@@ -406,6 +424,8 @@ TEST_F(ContentLoFiDeciderTest, SlowConnectionsFlag) {
std::unique_ptr<net::URLRequest> request =
CreateRequest(tests[i].network_prohibitively_slow);
+ if (tests[i].is_main_frame)
+ request->SetLoadFlags(request->load_flags() | net::LOAD_MAIN_FRAME);
net::HttpRequestHeaders headers;
NotifyBeforeSendProxyHeaders(&headers, request.get(), true);

Powered by Google App Engine
This is Rietveld 408576698