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