| 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 // Commentted out due to upload issue with CL: 8095007. |
| 1274 PrerenderTestURL("files/prerender/prerender_html5_audio.html", | 1283 // TODO(shishir): Fix this. |
| 1275 FINAL_STATUS_HTML5_MEDIA, | 1284 // IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Audio) { |
| 1285 // PrerenderTestURL("files/prerender/prerender_html5_audio.html", |
| 1286 // FINAL_STATUS_USED, |
| 1287 // 1); |
| 1288 // NavigateToDestUrlAndWaitForPassTitle(); |
| 1289 // } |
| 1290 |
| 1291 // Checks that audio loads are deferred on prerendering and played back when |
| 1292 // the prerender is swapped in if autoplay is set. |
| 1293 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5AudioAutoplay) { |
| 1294 PrerenderTestURL("files/prerender/prerender_html5_audio_autoplay.html", |
| 1295 FINAL_STATUS_USED, |
| 1276 1); | 1296 1); |
| 1297 NavigateToDestUrlAndWaitForPassTitle(); |
| 1277 } | 1298 } |
| 1278 | 1299 |
| 1279 // Checks that prerenderers will terminate when a video tag is encountered. | 1300 // Checks that audio loads are deferred on prerendering and played back when |
| 1301 // the prerender is swapped in if js starts playing. |
| 1302 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5AudioJsplay) { |
| 1303 PrerenderTestURL("files/prerender/prerender_html5_audio_jsplay.html", |
| 1304 FINAL_STATUS_USED, |
| 1305 1); |
| 1306 NavigateToDestUrlAndWaitForPassTitle(); |
| 1307 } |
| 1308 |
| 1309 // Checks that video loads are deferred on prerendering. |
| 1280 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Video) { | 1310 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Video) { |
| 1281 PrerenderTestURL("files/prerender/prerender_html5_video.html", | 1311 PrerenderTestURL("files/prerender/prerender_html5_video.html", |
| 1282 FINAL_STATUS_HTML5_MEDIA, | 1312 FINAL_STATUS_USED, |
| 1283 1); | 1313 1); |
| 1314 NavigateToDestUrlAndWaitForPassTitle(); |
| 1284 } | 1315 } |
| 1285 | 1316 |
| 1286 // Checks that prerenderers will terminate when a video tag is inserted via | 1317 // Checks that video tags inserted by javascript are deferred and played |
| 1287 // javascript. | 1318 // correctly on swap in. |
| 1288 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoJs) { | 1319 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoJs) { |
| 1289 PrerenderTestURL("files/prerender/prerender_html5_video_script.html", | 1320 PrerenderTestURL("files/prerender/prerender_html5_video_script.html", |
| 1290 FINAL_STATUS_HTML5_MEDIA, | 1321 FINAL_STATUS_USED, |
| 1291 1); | 1322 1); |
| 1323 NavigateToDestUrlAndWaitForPassTitle(); |
| 1324 } |
| 1325 |
| 1326 // Checks for correct network events by using a busy sleep the javascript. |
| 1327 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoNetwork) { |
| 1328 PrerenderTestURL("files/prerender/prerender_html5_video_network.html", |
| 1329 FINAL_STATUS_USED, |
| 1330 1); |
| 1331 NavigateToDestUrlAndWaitForPassTitle(); |
| 1292 } | 1332 } |
| 1293 | 1333 |
| 1294 // Checks that scripts can retrieve the correct window size while prerendering. | 1334 // Checks that scripts can retrieve the correct window size while prerendering. |
| 1295 #if defined(TOOLKIT_VIEWS) | 1335 #if defined(TOOLKIT_VIEWS) |
| 1296 // TODO(beng): Widget hierarchy split causes this to fail http://crbug.com/82363 | 1336 // TODO(beng): Widget hierarchy split causes this to fail http://crbug.com/82363 |
| 1297 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderWindowSize) { | 1337 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderWindowSize) { |
| 1298 #else | 1338 #else |
| 1299 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowSize) { | 1339 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowSize) { |
| 1300 #endif | 1340 #endif |
| 1301 PrerenderTestURL("files/prerender/prerender_size.html", | 1341 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) { | 1896 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderSessionStorage) { |
| 1857 set_loader_path("files/prerender/prerender_loader_with_session_storage.html"); | 1897 set_loader_path("files/prerender/prerender_loader_with_session_storage.html"); |
| 1858 PrerenderTestURL(GetCrossDomainTestUrl("files/prerender/prerender_page.html"), | 1898 PrerenderTestURL(GetCrossDomainTestUrl("files/prerender/prerender_page.html"), |
| 1859 FINAL_STATUS_USED, | 1899 FINAL_STATUS_USED, |
| 1860 1); | 1900 1); |
| 1861 NavigateToDestURL(); | 1901 NavigateToDestURL(); |
| 1862 GoBackToPageBeforePrerender(browser()); | 1902 GoBackToPageBeforePrerender(browser()); |
| 1863 } | 1903 } |
| 1864 | 1904 |
| 1865 } // namespace prerender | 1905 } // namespace prerender |
| OLD | NEW |