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

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 11551003: Change multi-prerender API to include per launcher slots. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: guh Created 8 years 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/string_util.h" 9 #include "base/string_util.h"
10 #include "base/stringprintf.h" 10 #include "base/stringprintf.h"
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 : PrerenderContents(prerender_manager, profile, url, 217 : PrerenderContents(prerender_manager, profile, url,
218 referrer, origin, PrerenderManager::kNoExperiment), 218 referrer, origin, PrerenderManager::kNoExperiment),
219 number_of_loads_(0), 219 number_of_loads_(0),
220 expected_number_of_loads_(expected_number_of_loads), 220 expected_number_of_loads_(expected_number_of_loads),
221 expected_final_status_(expected_final_status), 221 expected_final_status_(expected_final_status),
222 new_render_view_host_(NULL), 222 new_render_view_host_(NULL),
223 was_hidden_(false), 223 was_hidden_(false),
224 was_shown_(false), 224 was_shown_(false),
225 should_be_shown_(expected_final_status == FINAL_STATUS_USED), 225 should_be_shown_(expected_final_status == FINAL_STATUS_USED),
226 quit_message_loop_on_destruction_( 226 quit_message_loop_on_destruction_(
227 expected_final_status != FINAL_STATUS_EVICTED &&
228 expected_final_status != FINAL_STATUS_APP_TERMINATING && 227 expected_final_status != FINAL_STATUS_APP_TERMINATING &&
229 expected_final_status != FINAL_STATUS_MAX), 228 expected_final_status != FINAL_STATUS_MAX),
230 expected_pending_prerenders_(0), 229 expected_pending_prerenders_(0),
231 prerender_should_wait_for_ready_title_( 230 prerender_should_wait_for_ready_title_(
232 prerender_should_wait_for_ready_title) { 231 prerender_should_wait_for_ready_title) {
233 if (expected_number_of_loads == 0) 232 if (expected_number_of_loads == 0)
234 MessageLoopForUI::current()->Quit(); 233 MessageLoopForUI::current()->Quit();
235 } 234 }
236 235
237 virtual ~TestPrerenderContents() { 236 virtual ~TestPrerenderContents() {
(...skipping 997 matching lines...) Expand 10 before | Expand all | Expand 10 after
1235 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); 1234 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0));
1236 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); 1235 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0));
1237 // IsEmptyPrerenderLinkManager() is not racy because the earlier DidReceive* 1236 // IsEmptyPrerenderLinkManager() is not racy because the earlier DidReceive*
1238 // calls did a thread/process hop to the renderer which insured pending 1237 // calls did a thread/process hop to the renderer which insured pending
1239 // renderer events have arrived. 1238 // renderer events have arrived.
1240 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 1239 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
1241 } 1240 }
1242 1241
1243 IN_PROC_BROWSER_TEST_F( 1242 IN_PROC_BROWSER_TEST_F(
1244 PrerenderBrowserTest, PrerenderPageRemovingLinkWithTwoLinks) { 1243 PrerenderBrowserTest, PrerenderPageRemovingLinkWithTwoLinks) {
1244 GetPrerenderManager()->mutable_config().max_concurrency = 2;
1245 GetPrerenderManager()->mutable_config().max_concurrency_per_launcher = 2;
1246
1245 set_loader_path("files/prerender/prerender_loader_removing_links.html"); 1247 set_loader_path("files/prerender/prerender_loader_removing_links.html");
1246 set_loader_query_and_fragment("?links_to_insert=2"); 1248 set_loader_query_and_fragment("?links_to_insert=2");
1247 PrerenderTestURL("files/prerender/prerender_page.html", 1249 PrerenderTestURL("files/prerender/prerender_page.html",
1248 FINAL_STATUS_CANCELLED, 1); 1250 FINAL_STATUS_CANCELLED, 1);
1249 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); 1251 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0));
1250 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); 1252 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0));
1251 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); 1253 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1));
1252 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); 1254 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1));
1253 1255
1254 RemoveLinkElement(0); 1256 RemoveLinkElement(0);
(...skipping 12 matching lines...) Expand all
1267 // TODO(gavinp): Fails on XP Rel - http://crbug.com/128841 1269 // TODO(gavinp): Fails on XP Rel - http://crbug.com/128841
1268 #define MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne \ 1270 #define MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne \
1269 DISABLED_PrerenderPageRemovingLinkWithTwoLinksRemovingOne 1271 DISABLED_PrerenderPageRemovingLinkWithTwoLinksRemovingOne
1270 #else 1272 #else
1271 #define MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne \ 1273 #define MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne \
1272 PrerenderPageRemovingLinkWithTwoLinksRemovingOne 1274 PrerenderPageRemovingLinkWithTwoLinksRemovingOne
1273 #endif // defined(OS_WIN) 1275 #endif // defined(OS_WIN)
1274 IN_PROC_BROWSER_TEST_F( 1276 IN_PROC_BROWSER_TEST_F(
1275 PrerenderBrowserTest, 1277 PrerenderBrowserTest,
1276 MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne) { 1278 MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne) {
1279 GetPrerenderManager()->mutable_config().max_concurrency = 2;
1280 GetPrerenderManager()->mutable_config().max_concurrency_per_launcher = 2;
1277 set_loader_path("files/prerender/prerender_loader_removing_links.html"); 1281 set_loader_path("files/prerender/prerender_loader_removing_links.html");
1278 set_loader_query_and_fragment("?links_to_insert=2"); 1282 set_loader_query_and_fragment("?links_to_insert=2");
1279 PrerenderTestURL("files/prerender/prerender_page.html", 1283 PrerenderTestURL("files/prerender/prerender_page.html",
1280 FINAL_STATUS_USED, 1); 1284 FINAL_STATUS_USED, 1);
1281 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); 1285 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0));
1282 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); 1286 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0));
1283 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); 1287 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1));
1284 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); 1288 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1));
1285 1289
1286 RemoveLinkElement(0); 1290 RemoveLinkElement(0);
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
1745 const char* const kHtmlFileA = 1749 const char* const kHtmlFileA =
1746 "files/prerender/prerender_infinite_a_multiple.html"; 1750 "files/prerender/prerender_infinite_a_multiple.html";
1747 const char* const kHtmlFileB = 1751 const char* const kHtmlFileB =
1748 "files/prerender/prerender_infinite_b_multiple.html"; 1752 "files/prerender/prerender_infinite_b_multiple.html";
1749 const char* const kHtmlFileC = 1753 const char* const kHtmlFileC =
1750 "files/prerender/prerender_infinite_c_multiple.html"; 1754 "files/prerender/prerender_infinite_c_multiple.html";
1751 1755
1752 // This test is conceptually simplest if concurrency is at two, since we 1756 // This test is conceptually simplest if concurrency is at two, since we
1753 // don't have to worry about which of kHtmlFileB or kHtmlFileC gets evicted. 1757 // don't have to worry about which of kHtmlFileB or kHtmlFileC gets evicted.
1754 GetPrerenderManager()->mutable_config().max_concurrency = 2; 1758 GetPrerenderManager()->mutable_config().max_concurrency = 2;
1759 GetPrerenderManager()->mutable_config().max_concurrency_per_launcher = 2;
1755 1760
1756 std::deque<FinalStatus> expected_final_status_queue; 1761 std::deque<FinalStatus> expected_final_status_queue;
1757 expected_final_status_queue.push_back(FINAL_STATUS_USED); 1762 expected_final_status_queue.push_back(FINAL_STATUS_USED);
1758 expected_final_status_queue.push_back(FINAL_STATUS_APP_TERMINATING); 1763 expected_final_status_queue.push_back(FINAL_STATUS_APP_TERMINATING);
1759 expected_final_status_queue.push_back(FINAL_STATUS_APP_TERMINATING); 1764 expected_final_status_queue.push_back(FINAL_STATUS_APP_TERMINATING);
1760 1765
1761 PrerenderTestURL(kHtmlFileA, expected_final_status_queue, 1); 1766 PrerenderTestURL(kHtmlFileA, expected_final_status_queue, 1);
1762 ASSERT_TRUE(GetPrerenderContents()); 1767 ASSERT_TRUE(GetPrerenderContents());
1763 GetPrerenderContents()->WaitForPendingPrerenders(2u); 1768 GetPrerenderContents()->WaitForPendingPrerenders(2u);
1764 1769
(...skipping 881 matching lines...) Expand 10 before | Expand all | Expand 10 after
2646 channel_close_watcher.WatchChannel( 2651 channel_close_watcher.WatchChannel(
2647 chrome::GetActiveWebContents(browser())->GetRenderProcessHost()); 2652 chrome::GetActiveWebContents(browser())->GetRenderProcessHost());
2648 NavigateToDestURL(); 2653 NavigateToDestURL();
2649 channel_close_watcher.WaitForChannelClose(); 2654 channel_close_watcher.WaitForChannelClose();
2650 2655
2651 ASSERT_TRUE(IsEmptyPrerenderLinkManager()); 2656 ASSERT_TRUE(IsEmptyPrerenderLinkManager());
2652 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); 2657 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message();
2653 } 2658 }
2654 2659
2655 } // namespace prerender 2660 } // namespace prerender
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_config.h » ('j') | chrome/browser/prerender/prerender_config.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698