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

Side by Side Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate_unittest.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, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_netw ork_delegate.h" 5 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_netw ork_delegate.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 const Client kClient = Client::UNKNOWN; 94 const Client kClient = Client::UNKNOWN;
95 #endif 95 #endif
96 96
97 class TestLoFiDecider : public LoFiDecider { 97 class TestLoFiDecider : public LoFiDecider {
98 public: 98 public:
99 TestLoFiDecider() 99 TestLoFiDecider()
100 : should_request_lofi_resource_(false), 100 : should_request_lofi_resource_(false),
101 ignore_is_using_data_reduction_proxy_check_(false) {} 101 ignore_is_using_data_reduction_proxy_check_(false) {}
102 ~TestLoFiDecider() override {} 102 ~TestLoFiDecider() override {}
103 103
104 bool IsUsingLoFiMode(const net::URLRequest& request) const override { 104 bool IsUsingLoFi(const net::URLRequest& request) const override {
105 return should_request_lofi_resource_; 105 return should_request_lofi_resource_;
106 } 106 }
107 107
108 void SetIsUsingLoFiMode(bool should_request_lofi_resource) { 108 void SetIsUsingLoFi(bool should_request_lofi_resource) {
109 should_request_lofi_resource_ = should_request_lofi_resource; 109 should_request_lofi_resource_ = should_request_lofi_resource;
110 } 110 }
111 111
112 void MaybeSetAcceptTransformHeader( 112 void MaybeSetAcceptTransformHeader(
113 const net::URLRequest& request, 113 const net::URLRequest& request,
114 bool is_previews_disabled, 114 bool is_previews_disabled,
115 net::HttpRequestHeaders* headers) const override { 115 net::HttpRequestHeaders* headers) const override {
116 if (should_request_lofi_resource_) { 116 if (should_request_lofi_resource_) {
117 headers->SetHeader(chrome_proxy_accept_transform_header(), 117 headers->SetHeader(chrome_proxy_accept_transform_header(),
118 empty_image_directive()); 118 empty_image_directive());
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 516
517 { 517 {
518 // Main frame loaded. Lo-Fi should be used. 518 // Main frame loaded. Lo-Fi should be used.
519 net::HttpRequestHeaders headers; 519 net::HttpRequestHeaders headers;
520 net::ProxyRetryInfoMap proxy_retry_info; 520 net::ProxyRetryInfoMap proxy_retry_info;
521 521
522 net::TestDelegate delegate; 522 net::TestDelegate delegate;
523 std::unique_ptr<net::URLRequest> fake_request = 523 std::unique_ptr<net::URLRequest> fake_request =
524 context()->CreateRequest(GURL(kTestURL), net::IDLE, &delegate); 524 context()->CreateRequest(GURL(kTestURL), net::IDLE, &delegate);
525 fake_request->SetLoadFlags(net::LOAD_MAIN_FRAME_DEPRECATED); 525 fake_request->SetLoadFlags(net::LOAD_MAIN_FRAME_DEPRECATED);
526 lofi_decider()->SetIsUsingLoFiMode( 526 lofi_decider()->SetIsUsingLoFi(
527 config()->ShouldEnableLoFiMode(*fake_request.get())); 527 config()->ShouldEnableLoFi(*fake_request.get()));
528 NotifyNetworkDelegate(fake_request.get(), data_reduction_proxy_info, 528 NotifyNetworkDelegate(fake_request.get(), data_reduction_proxy_info,
529 proxy_retry_info, &headers); 529 proxy_retry_info, &headers);
530 530
531 VerifyHeaders(tests[i].is_data_reduction_proxy, true, headers); 531 VerifyHeaders(tests[i].is_data_reduction_proxy, true, headers);
532 VerifyDataReductionProxyData( 532 VerifyDataReductionProxyData(
533 *fake_request, tests[i].is_data_reduction_proxy, 533 *fake_request, tests[i].is_data_reduction_proxy,
534 config()->ShouldEnableLoFiMode(*fake_request.get())); 534 config()->ShouldEnableLoFi(*fake_request.get()));
535 } 535 }
536 536
537 { 537 {
538 // Lo-Fi is already off. Lo-Fi should not be used. 538 // Lo-Fi is already off. Lo-Fi should not be used.
539 net::HttpRequestHeaders headers; 539 net::HttpRequestHeaders headers;
540 net::ProxyRetryInfoMap proxy_retry_info; 540 net::ProxyRetryInfoMap proxy_retry_info;
541 net::TestDelegate delegate; 541 net::TestDelegate delegate;
542 std::unique_ptr<net::URLRequest> fake_request = 542 std::unique_ptr<net::URLRequest> fake_request =
543 context()->CreateRequest(GURL(kTestURL), net::IDLE, &delegate); 543 context()->CreateRequest(GURL(kTestURL), net::IDLE, &delegate);
544 lofi_decider()->SetIsUsingLoFiMode(false); 544 lofi_decider()->SetIsUsingLoFi(false);
545 NotifyNetworkDelegate(fake_request.get(), data_reduction_proxy_info, 545 NotifyNetworkDelegate(fake_request.get(), data_reduction_proxy_info,
546 proxy_retry_info, &headers); 546 proxy_retry_info, &headers);
547 VerifyHeaders(tests[i].is_data_reduction_proxy, false, headers); 547 VerifyHeaders(tests[i].is_data_reduction_proxy, false, headers);
548 VerifyDataReductionProxyData(*fake_request, 548 VerifyDataReductionProxyData(*fake_request,
549 tests[i].is_data_reduction_proxy, false); 549 tests[i].is_data_reduction_proxy, false);
550 } 550 }
551 551
552 { 552 {
553 // Lo-Fi is already on. Lo-Fi should be used. 553 // Lo-Fi is already on. Lo-Fi should be used.
554 net::HttpRequestHeaders headers; 554 net::HttpRequestHeaders headers;
555 net::ProxyRetryInfoMap proxy_retry_info; 555 net::ProxyRetryInfoMap proxy_retry_info;
556 net::TestDelegate delegate; 556 net::TestDelegate delegate;
557 std::unique_ptr<net::URLRequest> fake_request = 557 std::unique_ptr<net::URLRequest> fake_request =
558 context()->CreateRequest(GURL(kTestURL), net::IDLE, &delegate); 558 context()->CreateRequest(GURL(kTestURL), net::IDLE, &delegate);
559 559
560 lofi_decider()->SetIsUsingLoFiMode(true); 560 lofi_decider()->SetIsUsingLoFi(true);
561 NotifyNetworkDelegate(fake_request.get(), data_reduction_proxy_info, 561 NotifyNetworkDelegate(fake_request.get(), data_reduction_proxy_info,
562 proxy_retry_info, &headers); 562 proxy_retry_info, &headers);
563 VerifyHeaders(tests[i].is_data_reduction_proxy, true, headers); 563 VerifyHeaders(tests[i].is_data_reduction_proxy, true, headers);
564 VerifyDataReductionProxyData(*fake_request, 564 VerifyDataReductionProxyData(*fake_request,
565 tests[i].is_data_reduction_proxy, true); 565 tests[i].is_data_reduction_proxy, true);
566 } 566 }
567 567
568 { 568 {
569 // Main frame request with Lo-Fi off. Lo-Fi should not be used. 569 // Main frame request with Lo-Fi off. Lo-Fi should not be used.
570 // State of Lo-Fi should persist until next page load. 570 // State of Lo-Fi should persist until next page load.
571 net::HttpRequestHeaders headers; 571 net::HttpRequestHeaders headers;
572 net::ProxyRetryInfoMap proxy_retry_info; 572 net::ProxyRetryInfoMap proxy_retry_info;
573 net::TestDelegate delegate; 573 net::TestDelegate delegate;
574 std::unique_ptr<net::URLRequest> fake_request = 574 std::unique_ptr<net::URLRequest> fake_request =
575 context()->CreateRequest(GURL(kTestURL), net::IDLE, &delegate); 575 context()->CreateRequest(GURL(kTestURL), net::IDLE, &delegate);
576 fake_request->SetLoadFlags(net::LOAD_MAIN_FRAME_DEPRECATED); 576 fake_request->SetLoadFlags(net::LOAD_MAIN_FRAME_DEPRECATED);
577 lofi_decider()->SetIsUsingLoFiMode(false); 577 lofi_decider()->SetIsUsingLoFi(false);
578 NotifyNetworkDelegate(fake_request.get(), data_reduction_proxy_info, 578 NotifyNetworkDelegate(fake_request.get(), data_reduction_proxy_info,
579 proxy_retry_info, &headers); 579 proxy_retry_info, &headers);
580 VerifyHeaders(tests[i].is_data_reduction_proxy, false, headers); 580 VerifyHeaders(tests[i].is_data_reduction_proxy, false, headers);
581 VerifyDataReductionProxyData(*fake_request, 581 VerifyDataReductionProxyData(*fake_request,
582 tests[i].is_data_reduction_proxy, false); 582 tests[i].is_data_reduction_proxy, false);
583 } 583 }
584 584
585 { 585 {
586 // Lo-Fi is off. Lo-Fi is still not used. 586 // Lo-Fi is off. Lo-Fi is still not used.
587 net::HttpRequestHeaders headers; 587 net::HttpRequestHeaders headers;
588 net::ProxyRetryInfoMap proxy_retry_info; 588 net::ProxyRetryInfoMap proxy_retry_info;
589 net::TestDelegate delegate; 589 net::TestDelegate delegate;
590 std::unique_ptr<net::URLRequest> fake_request = 590 std::unique_ptr<net::URLRequest> fake_request =
591 context()->CreateRequest(GURL(kTestURL), net::IDLE, &delegate); 591 context()->CreateRequest(GURL(kTestURL), net::IDLE, &delegate);
592 lofi_decider()->SetIsUsingLoFiMode(false); 592 lofi_decider()->SetIsUsingLoFi(false);
593 NotifyNetworkDelegate(fake_request.get(), data_reduction_proxy_info, 593 NotifyNetworkDelegate(fake_request.get(), data_reduction_proxy_info,
594 proxy_retry_info, &headers); 594 proxy_retry_info, &headers);
595 VerifyHeaders(tests[i].is_data_reduction_proxy, false, headers); 595 VerifyHeaders(tests[i].is_data_reduction_proxy, false, headers);
596 VerifyDataReductionProxyData(*fake_request, 596 VerifyDataReductionProxyData(*fake_request,
597 tests[i].is_data_reduction_proxy, false); 597 tests[i].is_data_reduction_proxy, false);
598 } 598 }
599 599
600 { 600 {
601 // Main frame request. Lo-Fi should be used. 601 // Main frame request. Lo-Fi should be used.
602 net::HttpRequestHeaders headers; 602 net::HttpRequestHeaders headers;
603 net::ProxyRetryInfoMap proxy_retry_info; 603 net::ProxyRetryInfoMap proxy_retry_info;
604 net::TestDelegate delegate; 604 net::TestDelegate delegate;
605 std::unique_ptr<net::URLRequest> fake_request = 605 std::unique_ptr<net::URLRequest> fake_request =
606 context()->CreateRequest(GURL(kTestURL), net::IDLE, &delegate); 606 context()->CreateRequest(GURL(kTestURL), net::IDLE, &delegate);
607 fake_request->SetLoadFlags(net::LOAD_MAIN_FRAME_DEPRECATED); 607 fake_request->SetLoadFlags(net::LOAD_MAIN_FRAME_DEPRECATED);
608 lofi_decider()->SetIsUsingLoFiMode( 608 lofi_decider()->SetIsUsingLoFi(
609 config()->ShouldEnableLoFiMode(*fake_request.get())); 609 config()->ShouldEnableLoFi(*fake_request.get()));
610 NotifyNetworkDelegate(fake_request.get(), data_reduction_proxy_info, 610 NotifyNetworkDelegate(fake_request.get(), data_reduction_proxy_info,
611 proxy_retry_info, &headers); 611 proxy_retry_info, &headers);
612 VerifyDataReductionProxyData( 612 VerifyDataReductionProxyData(
613 *fake_request, tests[i].is_data_reduction_proxy, 613 *fake_request, tests[i].is_data_reduction_proxy,
614 config()->ShouldEnableLoFiMode(*fake_request.get())); 614 config()->ShouldEnableLoFi(*fake_request.get()));
615 } 615 }
616 } 616 }
617 } 617 }
618 618
619 TEST_F(DataReductionProxyNetworkDelegateTest, RequestDataConfigurations) { 619 TEST_F(DataReductionProxyNetworkDelegateTest, RequestDataConfigurations) {
620 Init(false, false); 620 Init(false, false);
621 const struct { 621 const struct {
622 bool lofi_on; 622 bool lofi_on;
623 bool used_data_reduction_proxy; 623 bool used_data_reduction_proxy;
624 bool main_frame; 624 bool main_frame;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 657
658 net::TestNetworkQualityEstimator test_network_quality_estimator; 658 net::TestNetworkQualityEstimator test_network_quality_estimator;
659 test_network_quality_estimator.set_effective_connection_type( 659 test_network_quality_estimator.set_effective_connection_type(
660 net::EFFECTIVE_CONNECTION_TYPE_OFFLINE); 660 net::EFFECTIVE_CONNECTION_TYPE_OFFLINE);
661 context()->set_network_quality_estimator(&test_network_quality_estimator); 661 context()->set_network_quality_estimator(&test_network_quality_estimator);
662 662
663 std::unique_ptr<net::URLRequest> request = context()->CreateRequest( 663 std::unique_ptr<net::URLRequest> request = context()->CreateRequest(
664 GURL(kTestURL), net::RequestPriority::IDLE, nullptr); 664 GURL(kTestURL), net::RequestPriority::IDLE, nullptr);
665 request->SetLoadFlags(test.main_frame ? net::LOAD_MAIN_FRAME_DEPRECATED 665 request->SetLoadFlags(test.main_frame ? net::LOAD_MAIN_FRAME_DEPRECATED
666 : 0); 666 : 0);
667 lofi_decider()->SetIsUsingLoFiMode(test.lofi_on); 667 lofi_decider()->SetIsUsingLoFi(test.lofi_on);
668 io_data()->request_options()->SetSecureSession("fake-session"); 668 io_data()->request_options()->SetSecureSession("fake-session");
669 network_delegate()->NotifyBeforeSendHeaders( 669 network_delegate()->NotifyBeforeSendHeaders(
670 request.get(), data_reduction_proxy_info, proxy_retry_info, &headers); 670 request.get(), data_reduction_proxy_info, proxy_retry_info, &headers);
671 DataReductionProxyData* data = 671 DataReductionProxyData* data =
672 DataReductionProxyData::GetData(*request.get()); 672 DataReductionProxyData::GetData(*request.get());
673 if (!test.used_data_reduction_proxy) { 673 if (!test.used_data_reduction_proxy) {
674 EXPECT_FALSE(data); 674 EXPECT_FALSE(data);
675 } else { 675 } else {
676 EXPECT_TRUE(data); 676 EXPECT_TRUE(data);
677 EXPECT_EQ(test.main_frame ? net::EFFECTIVE_CONNECTION_TYPE_OFFLINE 677 EXPECT_EQ(test.main_frame ? net::EFFECTIVE_CONNECTION_TYPE_OFFLINE
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
745 net::ProxyRetryInfoMap proxy_retry_info; 745 net::ProxyRetryInfoMap proxy_retry_info;
746 746
747 net::TestNetworkQualityEstimator test_network_quality_estimator; 747 net::TestNetworkQualityEstimator test_network_quality_estimator;
748 test_network_quality_estimator.set_effective_connection_type( 748 test_network_quality_estimator.set_effective_connection_type(
749 net::EFFECTIVE_CONNECTION_TYPE_OFFLINE); 749 net::EFFECTIVE_CONNECTION_TYPE_OFFLINE);
750 context()->set_network_quality_estimator(&test_network_quality_estimator); 750 context()->set_network_quality_estimator(&test_network_quality_estimator);
751 751
752 std::unique_ptr<net::URLRequest> request = context()->CreateRequest( 752 std::unique_ptr<net::URLRequest> request = context()->CreateRequest(
753 GURL(kTestURL), net::RequestPriority::IDLE, nullptr); 753 GURL(kTestURL), net::RequestPriority::IDLE, nullptr);
754 request->SetLoadFlags(net::LOAD_MAIN_FRAME_DEPRECATED); 754 request->SetLoadFlags(net::LOAD_MAIN_FRAME_DEPRECATED);
755 lofi_decider()->SetIsUsingLoFiMode(true); 755 lofi_decider()->SetIsUsingLoFi(true);
756 io_data()->request_options()->SetSecureSession("fake-session"); 756 io_data()->request_options()->SetSecureSession("fake-session");
757 network_delegate()->NotifyBeforeSendHeaders( 757 network_delegate()->NotifyBeforeSendHeaders(
758 request.get(), data_reduction_proxy_info, proxy_retry_info, &headers); 758 request.get(), data_reduction_proxy_info, proxy_retry_info, &headers);
759 DataReductionProxyData* data = 759 DataReductionProxyData* data =
760 DataReductionProxyData::GetData(*request.get()); 760 DataReductionProxyData::GetData(*request.get());
761 761
762 EXPECT_TRUE(data); 762 EXPECT_TRUE(data);
763 EXPECT_EQ(net::EFFECTIVE_CONNECTION_TYPE_OFFLINE, 763 EXPECT_EQ(net::EFFECTIVE_CONNECTION_TYPE_OFFLINE,
764 data->effective_connection_type()); 764 data->effective_connection_type());
765 EXPECT_TRUE(data->used_data_reduction_proxy()); 765 EXPECT_TRUE(data->used_data_reduction_proxy());
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
891 base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(), 891 base::FieldTrialList::CreateFieldTrial(params::GetLoFiFieldTrialName(),
892 "Enabled"); 892 "Enabled");
893 } 893 }
894 894
895 if (tests[i].lofi_enabled_through_switch) { 895 if (tests[i].lofi_enabled_through_switch) {
896 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( 896 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
897 switches::kDataReductionProxyLoFi, 897 switches::kDataReductionProxyLoFi,
898 switches::kDataReductionProxyLoFiValueAlwaysOn); 898 switches::kDataReductionProxyLoFiValueAlwaysOn);
899 } 899 }
900 900
901 lofi_decider()->SetIsUsingLoFiMode( 901 lofi_decider()->SetIsUsingLoFi(
902 config()->ShouldEnableLoFiMode(*fake_request.get())); 902 config()->ShouldEnableLoFi(*fake_request.get()));
903 903
904 fake_request = (FetchURLRequest(GURL(kTestURL), nullptr, response_headers, 904 fake_request = (FetchURLRequest(GURL(kTestURL), nullptr, response_headers,
905 kResponseContentLength)); 905 kResponseContentLength));
906 fake_request->SetLoadFlags(fake_request->load_flags() | 906 fake_request->SetLoadFlags(fake_request->load_flags() |
907 net::LOAD_MAIN_FRAME_DEPRECATED); 907 net::LOAD_MAIN_FRAME_DEPRECATED);
908 908
909 // Histograms are accumulative, so get the sum of all the tests so far. 909 // Histograms are accumulative, so get the sum of all the tests so far.
910 int expected_count = 0; 910 int expected_count = 0;
911 for (size_t j = 0; j <= i; ++j) 911 for (size_t j = 0; j <= i; ++j)
912 expected_count += tests[j].expected_count; 912 expected_count += tests[j].expected_count;
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
1071 "Vary: accept-encoding\r\n"; 1071 "Vary: accept-encoding\r\n";
1072 response_headers += "\r\n"; 1072 response_headers += "\r\n";
1073 1073
1074 FetchURLRequestAndVerifyBrotli(nullptr, response_headers, false, true); 1074 FetchURLRequestAndVerifyBrotli(nullptr, response_headers, false, true);
1075 FetchURLRequestAndVerifyBrotli(nullptr, response_headers, true, true); 1075 FetchURLRequestAndVerifyBrotli(nullptr, response_headers, true, true);
1076 } 1076 }
1077 1077
1078 } // namespace 1078 } // namespace
1079 1079
1080 } // namespace data_reduction_proxy 1080 } // namespace data_reduction_proxy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698