| Index: chrome/browser/prerender/prerender_browsertest.cc
|
| diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc
|
| index 83043b58abe1a5a00a5843ccbbd080dadc7f8361..a163f60258ccbb5b18d4442b51f5ef91e8b17390 100644
|
| --- a/chrome/browser/prerender/prerender_browsertest.cc
|
| +++ b/chrome/browser/prerender/prerender_browsertest.cc
|
| @@ -547,6 +547,15 @@ class PrerenderBrowserTest : public InProcessBrowserTest {
|
| test_server()->GetURL("files/prerender/prerender_page.html"));
|
| }
|
|
|
| + void NavigateToDestUrlAndWaitForPassTitle() {
|
| + 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());
|
| + }
|
| +
|
| // Called after the prerendered page has been navigated to and then away from.
|
| // Navigates back through the history to the prerendered page.
|
| void GoBackToPrerender(Browser* browser) {
|
| @@ -1266,26 +1275,55 @@ 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);
|
| + NavigateToDestUrlAndWaitForPassTitle();
|
| }
|
|
|
| -// 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);
|
| + NavigateToDestUrlAndWaitForPassTitle();
|
| +}
|
| +
|
| +// 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);
|
| + NavigateToDestUrlAndWaitForPassTitle();
|
| +}
|
| +
|
| +// 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);
|
| + NavigateToDestUrlAndWaitForPassTitle();
|
| }
|
|
|
| -// Checks that prerenderers will terminate when a video tag is inserted via
|
| -// javascript.
|
| +// Checks that video tags inserted by javascript are deferred and played
|
| +// 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);
|
| + NavigateToDestUrlAndWaitForPassTitle();
|
| +}
|
| +
|
| +// Checks for correct network events by using a busy sleep the javascript.
|
| +IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoNetwork) {
|
| + PrerenderTestURL("files/prerender/prerender_html5_video_network.html",
|
| + FINAL_STATUS_USED,
|
| 1);
|
| + NavigateToDestUrlAndWaitForPassTitle();
|
| }
|
|
|
| // Checks that scripts can retrieve the correct window size while prerendering.
|
|
|