Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(374)

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 8095007: Defer loading of audio/video tags while prerendering. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fixing test for release build. Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/chrome_renderer.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « no previous file | chrome/chrome_renderer.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698