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

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 2455653005: Revert "Revert of [NoStatePrefetch] Kill renderer after preload scanning (patchset #12 id:240001 of… (Closed)
Patch Set: rebased Created 4 years, 1 month 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
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_final_status.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <stddef.h> 5 #include <stddef.h>
6 #include <deque> 6 #include <deque>
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <unordered_map> 9 #include <unordered_map>
10 #include <utility> 10 #include <utility>
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 597
598 class PrerenderBrowserTest : public test_utils::PrerenderInProcessBrowserTest { 598 class PrerenderBrowserTest : public test_utils::PrerenderInProcessBrowserTest {
599 public: 599 public:
600 PrerenderBrowserTest() 600 PrerenderBrowserTest()
601 : call_javascript_(true), 601 : call_javascript_(true),
602 check_load_events_(true), 602 check_load_events_(true),
603 loader_path_("/prerender/prerender_loader.html") {} 603 loader_path_("/prerender/prerender_loader.html") {}
604 604
605 ~PrerenderBrowserTest() override {} 605 ~PrerenderBrowserTest() override {}
606 606
607 std::unique_ptr<TestPrerender> PrerenderTestURL(
608 const std::string& html_file,
609 FinalStatus expected_final_status,
610 int expected_number_of_loads) {
611 GURL url = src_server()->GetURL(MakeAbsolute(html_file));
612 return PrerenderTestURL(url, expected_final_status,
613 expected_number_of_loads);
614 }
615
616 std::unique_ptr<TestPrerender> PrerenderTestURL(
617 const GURL& url,
618 FinalStatus expected_final_status,
619 int expected_number_of_loads) {
620 std::vector<FinalStatus> expected_final_status_queue(1,
621 expected_final_status);
622 auto prerenders = PrerenderTestURLImpl(url, expected_final_status_queue,
623 expected_number_of_loads);
624 CHECK_EQ(1u, prerenders.size());
625 return std::move(prerenders[0]);
626 }
627
628 std::vector<std::unique_ptr<TestPrerender>> PrerenderTestURL(
629 const std::string& html_file,
630 const std::vector<FinalStatus>& expected_final_status_queue,
631 int expected_number_of_loads) {
632 GURL url = src_server()->GetURL(MakeAbsolute(html_file));
633 return PrerenderTestURLImpl(url, expected_final_status_queue,
634 expected_number_of_loads);
635 }
636
607 void SetUpCommandLine(base::CommandLine* command_line) override { 637 void SetUpCommandLine(base::CommandLine* command_line) override {
608 PrerenderInProcessBrowserTest::SetUpCommandLine(command_line); 638 PrerenderInProcessBrowserTest::SetUpCommandLine(command_line);
609 command_line->AppendSwitchASCII(switches::kPrerenderMode, 639 command_line->AppendSwitchASCII(switches::kPrerenderMode,
610 switches::kPrerenderModeSwitchValueEnabled); 640 switches::kPrerenderModeSwitchValueEnabled);
611 } 641 }
612 642
613 void SetUpInProcessBrowserTestFixture() override { 643 void SetUpInProcessBrowserTestFixture() override {
614 test_utils::PrerenderInProcessBrowserTest:: 644 test_utils::PrerenderInProcessBrowserTest::
615 SetUpInProcessBrowserTestFixture(); 645 SetUpInProcessBrowserTestFixture();
616 646
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 private: 937 private:
908 // TODO(davidben): Remove this altogether so the tests don't globally assume 938 // TODO(davidben): Remove this altogether so the tests don't globally assume
909 // only one prerender. 939 // only one prerender.
910 TestPrerenderContents* GetPrerenderContents() const { 940 TestPrerenderContents* GetPrerenderContents() const {
911 return GetPrerenderContentsFor(dest_url_); 941 return GetPrerenderContentsFor(dest_url_);
912 } 942 }
913 943
914 std::vector<std::unique_ptr<TestPrerender>> PrerenderTestURLImpl( 944 std::vector<std::unique_ptr<TestPrerender>> PrerenderTestURLImpl(
915 const GURL& prerender_url, 945 const GURL& prerender_url,
916 const std::vector<FinalStatus>& expected_final_status_queue, 946 const std::vector<FinalStatus>& expected_final_status_queue,
917 int expected_number_of_loads) override { 947 int expected_number_of_loads) {
918 dest_url_ = prerender_url; 948 dest_url_ = prerender_url;
919 949
920 base::StringPairs replacement_text; 950 GURL loader_url = ServeLoaderURL(loader_path_, "REPLACE_WITH_PRERENDER_URL",
921 replacement_text.push_back( 951 prerender_url, "&" + loader_query_);
922 make_pair("REPLACE_WITH_PRERENDER_URL", prerender_url.spec()));
923 std::string replacement_path;
924 net::test_server::GetFilePathWithReplacements(
925 loader_path_, replacement_text, &replacement_path);
926
927 GURL loader_url =
928 src_server()->GetURL(replacement_path + "&" + loader_query_);
929
930 GURL::Replacements loader_replacements; 952 GURL::Replacements loader_replacements;
931 if (!loader_host_override_.empty()) 953 if (!loader_host_override_.empty())
932 loader_replacements.SetHostStr(loader_host_override_); 954 loader_replacements.SetHostStr(loader_host_override_);
933 loader_url = loader_url.ReplaceComponents(loader_replacements); 955 loader_url = loader_url.ReplaceComponents(loader_replacements);
934 956
935 std::vector<std::unique_ptr<TestPrerender>> prerenders = 957 std::vector<std::unique_ptr<TestPrerender>> prerenders =
936 NavigateWithPrerenders(loader_url, expected_final_status_queue, 958 NavigateWithPrerenders(loader_url, expected_final_status_queue);
937 expected_number_of_loads); 959 prerenders[0]->WaitForLoads(expected_number_of_loads);
938 960
939 FinalStatus expected_final_status = expected_final_status_queue.front(); 961 FinalStatus expected_final_status = expected_final_status_queue.front();
940 if (ShouldAbortPrerenderBeforeSwap(expected_final_status)) { 962 if (ShouldAbortPrerenderBeforeSwap(expected_final_status)) {
941 // The prerender will abort on its own. Assert it does so correctly. 963 // The prerender will abort on its own. Assert it does so correctly.
942 prerenders[0]->WaitForStop(); 964 prerenders[0]->WaitForStop();
943 EXPECT_FALSE(prerenders[0]->contents()); 965 EXPECT_FALSE(prerenders[0]->contents());
944 EXPECT_TRUE(DidReceivePrerenderStopEventForLinkNumber(0)); 966 EXPECT_TRUE(DidReceivePrerenderStopEventForLinkNumber(0));
945 } else { 967 } else {
946 // Otherwise, check that it prerendered correctly. 968 // Otherwise, check that it prerendered correctly.
947 TestPrerenderContents* prerender_contents = prerenders[0]->contents(); 969 TestPrerenderContents* prerender_contents = prerenders[0]->contents();
(...skipping 2432 matching lines...) Expand 10 before | Expand all | Expand 10 after
3380 browser()->tab_strip_model()->GetActiveWebContents(); 3402 browser()->tab_strip_model()->GetActiveWebContents();
3381 bool display_test_result = false; 3403 bool display_test_result = false;
3382 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, 3404 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents,
3383 "DidDisplayReallyPass()", 3405 "DidDisplayReallyPass()",
3384 &display_test_result)); 3406 &display_test_result));
3385 ASSERT_TRUE(display_test_result); 3407 ASSERT_TRUE(display_test_result);
3386 } 3408 }
3387 #endif // !defined(DISABLE_NACL) 3409 #endif // !defined(DISABLE_NACL)
3388 3410
3389 } // namespace prerender 3411 } // namespace prerender
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_final_status.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698