| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/path_service.h" | 6 #include "base/path_service.h" |
| 7 #include "base/string_util.h" | 7 #include "base/string_util.h" |
| 8 #include "chrome/browser/prerender/prerender_contents.h" | 8 #include "chrome/browser/prerender/prerender_contents.h" |
| 9 #include "chrome/browser/prerender/prerender_manager.h" | 9 #include "chrome/browser/prerender/prerender_manager.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 161 void PrerenderTestURL( | 161 void PrerenderTestURL( |
| 162 const std::string& html_file, | 162 const std::string& html_file, |
| 163 const std::deque<FinalStatus>& expected_final_status_queue, | 163 const std::deque<FinalStatus>& expected_final_status_queue, |
| 164 int total_navigations) { | 164 int total_navigations) { |
| 165 PrerenderTestURLImpl(html_file, | 165 PrerenderTestURLImpl(html_file, |
| 166 expected_final_status_queue, | 166 expected_final_status_queue, |
| 167 total_navigations); | 167 total_navigations); |
| 168 } | 168 } |
| 169 | 169 |
| 170 void NavigateToDestURL() const { | 170 void NavigateToDestURL() const { |
| 171 ui_test_utils::NavigateToURL(browser(), dest_url_); | 171 NavigateToURLImpl(dest_url_); |
| 172 } |
| 172 | 173 |
| 173 // Make sure the PrerenderContents found earlier was used or removed | 174 // Should be const but test_server()->GetURL(...) is not const. |
| 174 EXPECT_TRUE(prerender_manager()->FindEntry(dest_url_) == NULL); | 175 void NavigateToURL(const std::string& dest_html_file) { |
| 175 | 176 const GURL dest_url = test_server()->GetURL(dest_html_file); |
| 176 // Check if page behaved as expected when actually displayed. | 177 NavigateToURLImpl(dest_url); |
| 177 bool display_test_result = false; | |
| 178 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | |
| 179 browser()->GetSelectedTabContents()->render_view_host(), L"", | |
| 180 L"window.domAutomationController.send(DidDisplayPass())", | |
| 181 &display_test_result)); | |
| 182 EXPECT_TRUE(display_test_result); | |
| 183 } | 178 } |
| 184 | 179 |
| 185 bool UrlIsInPrerenderManager(const std::string& html_file) { | 180 bool UrlIsInPrerenderManager(const std::string& html_file) { |
| 186 GURL dest_url = test_server()->GetURL(html_file); | 181 GURL dest_url = test_server()->GetURL(html_file); |
| 187 return (prerender_manager()->FindEntry(dest_url) != NULL); | 182 return (prerender_manager()->FindEntry(dest_url) != NULL); |
| 188 } | 183 } |
| 189 | 184 |
| 190 bool UrlIsInPrerenderManager(const GURL& url) { | 185 bool UrlIsInPrerenderManager(const GURL& url) { |
| 191 return (prerender_manager()->FindEntry(url) != NULL); | 186 return (prerender_manager()->FindEntry(url) != NULL); |
| 192 } | 187 } |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 break; | 267 break; |
| 273 } | 268 } |
| 274 default: | 269 default: |
| 275 // In the failure case, we should have removed dest_url_ from the | 270 // In the failure case, we should have removed dest_url_ from the |
| 276 // prerender_manager. | 271 // prerender_manager. |
| 277 EXPECT_TRUE(prerender_contents == NULL); | 272 EXPECT_TRUE(prerender_contents == NULL); |
| 278 break; | 273 break; |
| 279 } | 274 } |
| 280 } | 275 } |
| 281 | 276 |
| 277 void NavigateToURLImpl(const GURL& dest_url) const { |
| 278 ui_test_utils::NavigateToURL(browser(), dest_url); |
| 279 |
| 280 // Make sure the PrerenderContents found earlier was used or removed |
| 281 EXPECT_TRUE(prerender_manager()->FindEntry(dest_url_) == NULL); |
| 282 |
| 283 // Check if page behaved as expected when actually displayed. |
| 284 bool display_test_result = false; |
| 285 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
| 286 browser()->GetSelectedTabContents()->render_view_host(), L"", |
| 287 L"window.domAutomationController.send(DidDisplayPass())", |
| 288 &display_test_result)); |
| 289 EXPECT_TRUE(display_test_result); |
| 290 } |
| 291 |
| 282 PrerenderManager* prerender_manager() const { | 292 PrerenderManager* prerender_manager() const { |
| 283 Profile* profile = browser()->GetSelectedTabContents()->profile(); | 293 Profile* profile = browser()->GetSelectedTabContents()->profile(); |
| 284 PrerenderManager* prerender_manager = profile->GetPrerenderManager(); | 294 PrerenderManager* prerender_manager = profile->GetPrerenderManager(); |
| 285 return prerender_manager; | 295 return prerender_manager; |
| 286 } | 296 } |
| 287 | 297 |
| 288 WaitForLoadPrerenderContentsFactory* prc_factory_; | 298 WaitForLoadPrerenderContentsFactory* prc_factory_; |
| 289 GURL dest_url_; | 299 GURL dest_url_; |
| 290 bool use_https_src_server_; | 300 bool use_https_src_server_; |
| 291 }; | 301 }; |
| (...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 655 } | 665 } |
| 656 | 666 |
| 657 // Checks that prerenderers will terminate when a video tag is inserted via | 667 // Checks that prerenderers will terminate when a video tag is inserted via |
| 658 // javascript. | 668 // javascript. |
| 659 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoJs) { | 669 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoJs) { |
| 660 PrerenderTestURL("files/prerender/prerender_html5_video_script.html", | 670 PrerenderTestURL("files/prerender/prerender_html5_video_script.html", |
| 661 FINAL_STATUS_HTML5_MEDIA, | 671 FINAL_STATUS_HTML5_MEDIA, |
| 662 1); | 672 1); |
| 663 } | 673 } |
| 664 | 674 |
| 675 // Checks that we correctly use a prerendered page when navigating to a |
| 676 // fragment. |
| 677 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPageNavigateFragment) { |
| 678 PrerenderTestURL("files/prerender/prerender_fragment.html", |
| 679 FINAL_STATUS_USED, |
| 680 1); |
| 681 NavigateToURL("files/prerender/prerender_fragment.html#fragment"); |
| 682 } |
| 683 |
| 684 // Checks that we correctly use a prerendered page when we prerender a fragment |
| 685 // but navigate to the main page. |
| 686 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderFragmentNavigatePage) { |
| 687 PrerenderTestURL("files/prerender/prerender_page.html#fragment", |
| 688 FINAL_STATUS_USED, |
| 689 1); |
| 690 NavigateToURL("files/prerender/prerender_page.html"); |
| 691 } |
| 692 |
| 665 } // namespace prerender | 693 } // namespace prerender |
| OLD | NEW |