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

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: Addressing Dominic's comments. Created 9 years, 1 month 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
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 1238 matching lines...) Expand 10 before | Expand all | Expand 10 after
1249 } 1249 }
1250 } 1250 }
1251 EXPECT_EQ(0, num_prerender_tabs); 1251 EXPECT_EQ(0, num_prerender_tabs);
1252 1252
1253 // We may have deleted the prerender tab, but the swapped in tab should be 1253 // We may have deleted the prerender tab, but the swapped in tab should be
1254 // active. 1254 // active.
1255 EXPECT_GE(num_tabs_with_prerender_page_title, 1); 1255 EXPECT_GE(num_tabs_with_prerender_page_title, 1);
1256 EXPECT_LE(num_tabs_with_prerender_page_title, 2); 1256 EXPECT_LE(num_tabs_with_prerender_page_title, 2);
1257 } 1257 }
1258 1258
1259 // Checks that prerenderers will terminate when an audio tag is encountered. 1259 // Checks that audio loads are deferred on prerendering.
1260 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Audio) { 1260 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Audio) {
1261 PrerenderTestURL("files/prerender/prerender_html5_audio.html", 1261 PrerenderTestURL("files/prerender/prerender_html5_audio.html",
1262 FINAL_STATUS_HTML5_MEDIA, 1262 FINAL_STATUS_USED,
1263 1); 1263 1);
1264 string16 expected_title = ASCIIToUTF16("PASS");
1265 ui_test_utils::TitleWatcher title_watcher(
1266 GetPrerenderContents()->prerender_contents()->tab_contents(),
1267 expected_title);
1268 NavigateToDestURL();
1269 EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
1264 } 1270 }
1265 1271
1266 // Checks that prerenderers will terminate when a video tag is encountered. 1272 // Checks that audio loads are deferred on prerendering and played back when
1273 // the prerender is swapped in if autoplay is set.
1274 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5AudioAutoplay) {
1275 PrerenderTestURL("files/prerender/prerender_html5_audio_autoplay.html",
1276 FINAL_STATUS_USED,
1277 1);
1278 string16 expected_title = ASCIIToUTF16("PASS");
cbentzel 2011/11/15 18:55:33 Move the rest of this method into a helper functio
Shishir 2011/11/17 21:18:49 Done.
1279 ui_test_utils::TitleWatcher title_watcher(
1280 GetPrerenderContents()->prerender_contents()->tab_contents(),
1281 expected_title);
1282 NavigateToDestURL();
1283 EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
1284 }
1285
1286 // Checks that audio loads are deferred on prerendering and played back when
1287 // the prerender is swapped in if js starts playing.
1288 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5AudioJsplay) {
1289 PrerenderTestURL("files/prerender/prerender_html5_audio_jsplay.html",
1290 FINAL_STATUS_USED,
1291 1);
1292 string16 expected_title = ASCIIToUTF16("PASS");
1293 ui_test_utils::TitleWatcher title_watcher(
1294 GetPrerenderContents()->prerender_contents()->tab_contents(),
1295 expected_title);
1296 NavigateToDestURL();
1297 EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
1298 }
1299
1300 // Checks that video loads are deferred on prerendering.
1267 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Video) { 1301 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Video) {
1268 PrerenderTestURL("files/prerender/prerender_html5_video.html", 1302 PrerenderTestURL("files/prerender/prerender_html5_video.html",
1269 FINAL_STATUS_HTML5_MEDIA, 1303 FINAL_STATUS_USED,
1270 1); 1304 1);
1305 string16 expected_title = ASCIIToUTF16("PASS");
1306 ui_test_utils::TitleWatcher title_watcher(
1307 GetPrerenderContents()->prerender_contents()->tab_contents(),
1308 expected_title);
1309 NavigateToDestURL();
1310 EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
1271 } 1311 }
1272 1312
1273 // Checks that prerenderers will terminate when a video tag is inserted via 1313 // Checks that video tags inserted by javascript are deferred and played
1274 // javascript. 1314 // correctly on swap in.
1275 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoJs) { 1315 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoJs) {
1276 PrerenderTestURL("files/prerender/prerender_html5_video_script.html", 1316 PrerenderTestURL("files/prerender/prerender_html5_video_script.html",
1277 FINAL_STATUS_HTML5_MEDIA, 1317 FINAL_STATUS_USED,
1278 1); 1318 1);
1319 string16 expected_title = ASCIIToUTF16("PASS");
1320 ui_test_utils::TitleWatcher title_watcher(
1321 GetPrerenderContents()->prerender_contents()->tab_contents(),
1322 expected_title);
1323 NavigateToDestURL();
1324 EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
1279 } 1325 }
1280 1326
1281 // Checks that scripts can retrieve the correct window size while prerendering. 1327 // Checks that scripts can retrieve the correct window size while prerendering.
1282 #if defined(TOOLKIT_VIEWS) 1328 #if defined(TOOLKIT_VIEWS)
1283 // TODO(beng): Widget hierarchy split causes this to fail http://crbug.com/82363 1329 // TODO(beng): Widget hierarchy split causes this to fail http://crbug.com/82363
1284 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderWindowSize) { 1330 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderWindowSize) {
1285 #else 1331 #else
1286 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowSize) { 1332 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowSize) {
1287 #endif 1333 #endif
1288 PrerenderTestURL("files/prerender/prerender_size.html", 1334 PrerenderTestURL("files/prerender/prerender_size.html",
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after
1840 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSessionStorage) { 1886 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSessionStorage) {
1841 set_loader_path("files/prerender/prerender_loader_with_session_storage.html"); 1887 set_loader_path("files/prerender/prerender_loader_with_session_storage.html");
1842 PrerenderTestURL(GetCrossDomainTestUrl("files/prerender/prerender_page.html"), 1888 PrerenderTestURL(GetCrossDomainTestUrl("files/prerender/prerender_page.html"),
1843 FINAL_STATUS_USED, 1889 FINAL_STATUS_USED,
1844 1); 1890 1);
1845 NavigateToDestURL(); 1891 NavigateToDestURL();
1846 GoBackToPageBeforePrerender(browser()); 1892 GoBackToPageBeforePrerender(browser());
1847 } 1893 }
1848 1894
1849 } // namespace prerender 1895 } // namespace prerender
OLDNEW
« no previous file with comments | « no previous file | chrome/chrome_renderer.gypi » ('j') | chrome/renderer/prerender/prerender_webmediaplayer.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698