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 <deque> | 5 #include <deque> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
9 #include "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
543 ASCIIToUTF16("ClickOpenLink()")); | 543 ASCIIToUTF16("ClickOpenLink()")); |
544 new_page_observer.Wait(); | 544 new_page_observer.Wait(); |
545 } | 545 } |
546 | 546 |
547 void NavigateToNextPageAfterPrerender(Browser* browser) { | 547 void NavigateToNextPageAfterPrerender(Browser* browser) { |
548 ui_test_utils::NavigateToURL( | 548 ui_test_utils::NavigateToURL( |
549 browser, | 549 browser, |
550 test_server()->GetURL("files/prerender/prerender_page.html")); | 550 test_server()->GetURL("files/prerender/prerender_page.html")); |
551 } | 551 } |
552 | 552 |
| 553 void NavigateToDestUrlAndWaitForPassTitle() { |
| 554 string16 expected_title = ASCIIToUTF16("PASS"); |
| 555 ui_test_utils::TitleWatcher title_watcher( |
| 556 GetPrerenderContents()->prerender_contents()->tab_contents(), |
| 557 expected_title); |
| 558 NavigateToDestURL(); |
| 559 EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle()); |
| 560 } |
| 561 |
553 // Called after the prerendered page has been navigated to and then away from. | 562 // Called after the prerendered page has been navigated to and then away from. |
554 // Navigates back through the history to the prerendered page. | 563 // Navigates back through the history to the prerendered page. |
555 void GoBackToPrerender(Browser* browser) { | 564 void GoBackToPrerender(Browser* browser) { |
556 ui_test_utils::WindowedNotificationObserver back_nav_observer( | 565 ui_test_utils::WindowedNotificationObserver back_nav_observer( |
557 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 566 content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
558 content::NotificationService::AllSources()); | 567 content::NotificationService::AllSources()); |
559 browser->GoBack(CURRENT_TAB); | 568 browser->GoBack(CURRENT_TAB); |
560 back_nav_observer.Wait(); | 569 back_nav_observer.Wait(); |
561 bool original_prerender_page = false; | 570 bool original_prerender_page = false; |
562 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( | 571 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( |
(...skipping 699 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1262 } | 1271 } |
1263 } | 1272 } |
1264 EXPECT_EQ(0, num_prerender_tabs); | 1273 EXPECT_EQ(0, num_prerender_tabs); |
1265 | 1274 |
1266 // We may have deleted the prerender tab, but the swapped in tab should be | 1275 // We may have deleted the prerender tab, but the swapped in tab should be |
1267 // active. | 1276 // active. |
1268 EXPECT_GE(num_tabs_with_prerender_page_title, 1); | 1277 EXPECT_GE(num_tabs_with_prerender_page_title, 1); |
1269 EXPECT_LE(num_tabs_with_prerender_page_title, 2); | 1278 EXPECT_LE(num_tabs_with_prerender_page_title, 2); |
1270 } | 1279 } |
1271 | 1280 |
1272 // Checks that prerenderers will terminate when an audio tag is encountered. | 1281 // Checks that audio loads are deferred on prerendering. |
1273 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Audio) { | 1282 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Audio) { |
1274 PrerenderTestURL("files/prerender/prerender_html5_audio.html", | 1283 PrerenderTestURL("files/prerender/prerender_html5_audio.html", |
1275 FINAL_STATUS_HTML5_MEDIA, | 1284 FINAL_STATUS_USED, |
1276 1); | 1285 1); |
| 1286 NavigateToDestUrlAndWaitForPassTitle(); |
1277 } | 1287 } |
1278 | 1288 |
1279 // Checks that prerenderers will terminate when a video tag is encountered. | 1289 // Checks that audio loads are deferred on prerendering and played back when |
| 1290 // the prerender is swapped in if autoplay is set. |
| 1291 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5AudioAutoplay) { |
| 1292 PrerenderTestURL("files/prerender/prerender_html5_audio_autoplay.html", |
| 1293 FINAL_STATUS_USED, |
| 1294 1); |
| 1295 NavigateToDestUrlAndWaitForPassTitle(); |
| 1296 } |
| 1297 |
| 1298 // Checks that audio loads are deferred on prerendering and played back when |
| 1299 // the prerender is swapped in if js starts playing. |
| 1300 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5AudioJsplay) { |
| 1301 PrerenderTestURL("files/prerender/prerender_html5_audio_jsplay.html", |
| 1302 FINAL_STATUS_USED, |
| 1303 1); |
| 1304 NavigateToDestUrlAndWaitForPassTitle(); |
| 1305 } |
| 1306 |
| 1307 // Checks that video loads are deferred on prerendering. |
1280 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Video) { | 1308 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Video) { |
1281 PrerenderTestURL("files/prerender/prerender_html5_video.html", | 1309 PrerenderTestURL("files/prerender/prerender_html5_video.html", |
1282 FINAL_STATUS_HTML5_MEDIA, | 1310 FINAL_STATUS_USED, |
1283 1); | 1311 1); |
| 1312 NavigateToDestUrlAndWaitForPassTitle(); |
1284 } | 1313 } |
1285 | 1314 |
1286 // Checks that prerenderers will terminate when a video tag is inserted via | 1315 // Checks that video tags inserted by javascript are deferred and played |
1287 // javascript. | 1316 // correctly on swap in. |
1288 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoJs) { | 1317 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoJs) { |
1289 PrerenderTestURL("files/prerender/prerender_html5_video_script.html", | 1318 PrerenderTestURL("files/prerender/prerender_html5_video_script.html", |
1290 FINAL_STATUS_HTML5_MEDIA, | 1319 FINAL_STATUS_USED, |
1291 1); | 1320 1); |
| 1321 NavigateToDestUrlAndWaitForPassTitle(); |
| 1322 } |
| 1323 |
| 1324 // Checks for correct network events by using a busy sleep the javascript. |
| 1325 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoNetwork) { |
| 1326 PrerenderTestURL("files/prerender/prerender_html5_video_network.html", |
| 1327 FINAL_STATUS_USED, |
| 1328 1); |
| 1329 NavigateToDestUrlAndWaitForPassTitle(); |
1292 } | 1330 } |
1293 | 1331 |
1294 // Checks that scripts can retrieve the correct window size while prerendering. | 1332 // Checks that scripts can retrieve the correct window size while prerendering. |
1295 #if defined(TOOLKIT_VIEWS) | 1333 #if defined(TOOLKIT_VIEWS) |
1296 // TODO(beng): Widget hierarchy split causes this to fail http://crbug.com/82363 | 1334 // TODO(beng): Widget hierarchy split causes this to fail http://crbug.com/82363 |
1297 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderWindowSize) { | 1335 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderWindowSize) { |
1298 #else | 1336 #else |
1299 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowSize) { | 1337 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowSize) { |
1300 #endif | 1338 #endif |
1301 PrerenderTestURL("files/prerender/prerender_size.html", | 1339 PrerenderTestURL("files/prerender/prerender_size.html", |
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1856 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderSessionStorage) { | 1894 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderSessionStorage) { |
1857 set_loader_path("files/prerender/prerender_loader_with_session_storage.html"); | 1895 set_loader_path("files/prerender/prerender_loader_with_session_storage.html"); |
1858 PrerenderTestURL(GetCrossDomainTestUrl("files/prerender/prerender_page.html"), | 1896 PrerenderTestURL(GetCrossDomainTestUrl("files/prerender/prerender_page.html"), |
1859 FINAL_STATUS_USED, | 1897 FINAL_STATUS_USED, |
1860 1); | 1898 1); |
1861 NavigateToDestURL(); | 1899 NavigateToDestURL(); |
1862 GoBackToPageBeforePrerender(browser()); | 1900 GoBackToPageBeforePrerender(browser()); |
1863 } | 1901 } |
1864 | 1902 |
1865 } // namespace prerender | 1903 } // namespace prerender |
OLD | NEW |