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

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

Powered by Google App Engine
This is Rietveld 408576698