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 1249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1260 } | 1260 } |
1261 } | 1261 } |
1262 EXPECT_EQ(0, num_prerender_tabs); | 1262 EXPECT_EQ(0, num_prerender_tabs); |
1263 | 1263 |
1264 // We may have deleted the prerender tab, but the swapped in tab should be | 1264 // We may have deleted the prerender tab, but the swapped in tab should be |
1265 // active. | 1265 // active. |
1266 EXPECT_GE(num_tabs_with_prerender_page_title, 1); | 1266 EXPECT_GE(num_tabs_with_prerender_page_title, 1); |
1267 EXPECT_LE(num_tabs_with_prerender_page_title, 2); | 1267 EXPECT_LE(num_tabs_with_prerender_page_title, 2); |
1268 } | 1268 } |
1269 | 1269 |
1270 // Checks that prerenderers will terminate when an audio tag is encountered. | 1270 // Checks that audio loads are deferred on prerendering. |
1271 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Audio) { | 1271 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Audio) { |
1272 PrerenderTestURL("files/prerender/prerender_html5_audio.html", | 1272 PrerenderTestURL("files/prerender/prerender_html5_audio.html", |
1273 FINAL_STATUS_HTML5_MEDIA, | 1273 FINAL_STATUS_USED, |
1274 1); | 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()); |
1275 } | 1281 } |
1276 | 1282 |
1277 // Checks that prerenderers will terminate when a video tag is encountered. | 1283 // Checks that audio loads are deferred on prerendering and played back when |
| 1284 // the prerender is swapped in if autoplay is set. |
| 1285 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5AudioAutoplay) { |
| 1286 PrerenderTestURL("files/prerender/prerender_html5_audio_autoplay.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 audio loads are deferred on prerendering and played back when |
| 1298 // the prerender is swapped in if js starts playing. |
| 1299 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5AudioJsplay) { |
| 1300 PrerenderTestURL("files/prerender/prerender_html5_audio_jsplay.html", |
| 1301 FINAL_STATUS_USED, |
| 1302 1); |
| 1303 string16 expected_title = ASCIIToUTF16("PASS"); |
| 1304 ui_test_utils::TitleWatcher title_watcher( |
| 1305 GetPrerenderContents()->prerender_contents()->tab_contents(), |
| 1306 expected_title); |
| 1307 NavigateToDestURL(); |
| 1308 EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle()); |
| 1309 } |
| 1310 |
| 1311 // Checks that video loads are deferred on prerendering. |
1278 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Video) { | 1312 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5Video) { |
1279 PrerenderTestURL("files/prerender/prerender_html5_video.html", | 1313 PrerenderTestURL("files/prerender/prerender_html5_video.html", |
1280 FINAL_STATUS_HTML5_MEDIA, | 1314 FINAL_STATUS_USED, |
1281 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()); |
1282 } | 1322 } |
1283 | 1323 |
1284 // Checks that prerenderers will terminate when a video tag is inserted via | 1324 // Checks that video tags inserted by javascript are deferred and played |
1285 // javascript. | 1325 // correctly on swap in. |
1286 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoJs) { | 1326 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderHTML5VideoJs) { |
1287 PrerenderTestURL("files/prerender/prerender_html5_video_script.html", | 1327 PrerenderTestURL("files/prerender/prerender_html5_video_script.html", |
1288 FINAL_STATUS_HTML5_MEDIA, | 1328 FINAL_STATUS_USED, |
1289 1); | 1329 1); |
| 1330 string16 expected_title = ASCIIToUTF16("PASS"); |
| 1331 ui_test_utils::TitleWatcher title_watcher( |
| 1332 GetPrerenderContents()->prerender_contents()->tab_contents(), |
| 1333 expected_title); |
| 1334 NavigateToDestURL(); |
| 1335 EXPECT_EQ(expected_title, title_watcher.WaitAndGetTitle()); |
1290 } | 1336 } |
1291 | 1337 |
1292 // Checks that scripts can retrieve the correct window size while prerendering. | 1338 // Checks that scripts can retrieve the correct window size while prerendering. |
1293 #if defined(TOOLKIT_VIEWS) | 1339 #if defined(TOOLKIT_VIEWS) |
1294 // TODO(beng): Widget hierarchy split causes this to fail http://crbug.com/82363 | 1340 // TODO(beng): Widget hierarchy split causes this to fail http://crbug.com/82363 |
1295 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderWindowSize) { | 1341 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, DISABLED_PrerenderWindowSize) { |
1296 #else | 1342 #else |
1297 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowSize) { | 1343 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderWindowSize) { |
1298 #endif | 1344 #endif |
1299 PrerenderTestURL("files/prerender/prerender_size.html", | 1345 PrerenderTestURL("files/prerender/prerender_size.html", |
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1912 RenderViewHost* inspected_rvh = tab_contents->render_view_host(); | 1958 RenderViewHost* inspected_rvh = tab_contents->render_view_host(); |
1913 DevToolsManager* manager = DevToolsManager::GetInstance(); | 1959 DevToolsManager* manager = DevToolsManager::GetInstance(); |
1914 FakeDevToolsClientHost client_host; | 1960 FakeDevToolsClientHost client_host; |
1915 manager->RegisterDevToolsClientHostFor(inspected_rvh, &client_host); | 1961 manager->RegisterDevToolsClientHostFor(inspected_rvh, &client_host); |
1916 const char* url = "files/prerender/prerender_page.html"; | 1962 const char* url = "files/prerender/prerender_page.html"; |
1917 PrerenderTestURL(url, FINAL_STATUS_DEVTOOLS_ATTACHED, 1); | 1963 PrerenderTestURL(url, FINAL_STATUS_DEVTOOLS_ATTACHED, 1); |
1918 NavigateToURL(url); | 1964 NavigateToURL(url); |
1919 } | 1965 } |
1920 | 1966 |
1921 } // namespace prerender | 1967 } // namespace prerender |
OLD | NEW |