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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/chrome_renderer.gypi » ('j') | chrome/renderer/prerender/prerender_webmediaplayer.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/prerender/prerender_browsertest.cc
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc
index d9b77e1a75920dd9d3880a5eb570ea6889c37461..95beef22d0aa3e4eb92acb9aaa2612675642d5ae 100644
--- a/chrome/browser/prerender/prerender_browsertest.cc
+++ b/chrome/browser/prerender/prerender_browsertest.cc
@@ -1253,26 +1253,72 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderTaskManager) {
EXPECT_LE(num_tabs_with_prerender_page_title, 2);
}
-// Checks that prerenderers will terminate when an audio tag is encountered.
+// Checks that audio loads are deferred on prerendering.
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Audio) {
PrerenderTestURL("files/prerender/prerender_html5_audio.html",
- FINAL_STATUS_HTML5_MEDIA,
+ FINAL_STATUS_USED,
1);
+ string16 expected_title = ASCIIToUTF16("PASS");
+ ui_test_utils::TitleWatcher title_watcher(
+ GetPrerenderContents()->prerender_contents()->tab_contents(),
+ expected_title);
+ NavigateToDestURL();
+ EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
}
-// Checks that prerenderers will terminate when a video tag is encountered.
+// Checks that audio loads are deferred on prerendering and played back when
+// the prerender is swapped in if autoplay is set.
+IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5AudioAutoplay) {
+ PrerenderTestURL("files/prerender/prerender_html5_audio_autoplay.html",
+ FINAL_STATUS_USED,
+ 1);
+ string16 expected_title = ASCIIToUTF16("PASS");
+ ui_test_utils::TitleWatcher title_watcher(
+ GetPrerenderContents()->prerender_contents()->tab_contents(),
+ expected_title);
+ NavigateToDestURL();
+ EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
+}
+
+// Checks that audio loads are deferred on prerendering and played back when
+// the prerender is swapped in if js starts playing.
+IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5AudioJsplay) {
+ PrerenderTestURL("files/prerender/prerender_html5_audio_jsplay.html",
+ FINAL_STATUS_USED,
+ 1);
+ string16 expected_title = ASCIIToUTF16("PASS");
+ ui_test_utils::TitleWatcher title_watcher(
+ GetPrerenderContents()->prerender_contents()->tab_contents(),
+ expected_title);
+ NavigateToDestURL();
+ EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
+}
+
+// Checks that video loads are deferred on prerendering.
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Video) {
PrerenderTestURL("files/prerender/prerender_html5_video.html",
- FINAL_STATUS_HTML5_MEDIA,
+ FINAL_STATUS_USED,
1);
+ string16 expected_title = ASCIIToUTF16("PASS");
+ ui_test_utils::TitleWatcher title_watcher(
+ GetPrerenderContents()->prerender_contents()->tab_contents(),
+ expected_title);
+ NavigateToDestURL();
+ EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
}
-// Checks that prerenderers will terminate when a video tag is inserted via
-// javascript.
+// 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.
+// correctly on swap in.
IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoJs) {
PrerenderTestURL("files/prerender/prerender_html5_video_script.html",
- FINAL_STATUS_HTML5_MEDIA,
+ FINAL_STATUS_USED,
1);
+ string16 expected_title = ASCIIToUTF16("PASS");
+ ui_test_utils::TitleWatcher title_watcher(
+ GetPrerenderContents()->prerender_contents()->tab_contents(),
+ expected_title);
+ NavigateToDestURL();
+ EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle());
}
// Checks that scripts can retrieve the correct window size while prerendering.
« 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