OLD | NEW |
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 Loading... |
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 |
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 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1841 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSessionStorage) { | 1887 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSessionStorage) { |
1842 set_loader_path("files/prerender/prerender_loader_with_session_storage.html"); | 1888 set_loader_path("files/prerender/prerender_loader_with_session_storage.html"); |
1843 PrerenderTestURL(GetCrossDomainTestUrl("files/prerender/prerender_page.html"), | 1889 PrerenderTestURL(GetCrossDomainTestUrl("files/prerender/prerender_page.html"), |
1844 FINAL_STATUS_USED, | 1890 FINAL_STATUS_USED, |
1845 1); | 1891 1); |
1846 NavigateToDestURL(); | 1892 NavigateToDestURL(); |
1847 GoBackToPageBeforePrerender(browser()); | 1893 GoBackToPageBeforePrerender(browser()); |
1848 } | 1894 } |
1849 | 1895 |
1850 } // namespace prerender | 1896 } // namespace prerender |
OLD | NEW |