| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |