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

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: surprising test deflake 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 991 matching lines...) Expand 10 before | Expand all | Expand 10 after
1229 // PrerenderLinkManager should be deleted by removing the links, rather than 1228 // PrerenderLinkManager should be deleted by removing the links, rather than
1230 // shutting down the renderer process. 1229 // shutting down the renderer process.
1231 RemoveLinkElements(); 1230 RemoveLinkElements();
1232 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); 1231 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1));
1233 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); 1232 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1));
1234 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 1233 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
1235 } 1234 }
1236 1235
1237 IN_PROC_BROWSER_TEST_F( 1236 IN_PROC_BROWSER_TEST_F(
1238 PrerenderBrowserTest, PrerenderPageRemovingLinkWithTwoLinks) { 1237 PrerenderBrowserTest, PrerenderPageRemovingLinkWithTwoLinks) {
1238 GetPrerenderManager()->mutable_config().max_concurrency = 2;
1239 GetPrerenderManager()->mutable_config().max_concurrency_per_launcher = 2;
1240
1239 set_loader_path("files/prerender/prerender_loader_removing_links.html"); 1241 set_loader_path("files/prerender/prerender_loader_removing_links.html");
1240 set_loader_query_and_fragment("?links_to_insert=2&links_to_remove=2"); 1242 set_loader_query_and_fragment("?links_to_insert=2&links_to_remove=2");
1241 PrerenderTestURL("files/prerender/prerender_page.html", 1243 PrerenderTestURL("files/prerender/prerender_page.html",
1242 FINAL_STATUS_CANCELLED, 1); 1244 FINAL_STATUS_CANCELLED, 1);
1243 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); 1245 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1));
1244 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); 1246 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1));
1245 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(2)); 1247 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(2));
1246 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(2)); 1248 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(2));
1247 1249
1248 RemoveLinkElements(); 1250 RemoveLinkElements();
1249 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); 1251 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1));
1250 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); 1252 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1));
1251 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(2)); 1253 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(2));
1252 1254
1253 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(2)); 1255 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(2));
1254 EXPECT_TRUE(IsEmptyPrerenderLinkManager()); 1256 EXPECT_TRUE(IsEmptyPrerenderLinkManager());
1255 } 1257 }
1256 1258
1257 #if defined(OS_WIN) 1259 #if defined(OS_WIN)
1258 // TODO(gavinp): Fails on XP Rel - http://crbug.com/128841 1260 // TODO(gavinp): Fails on XP Rel - http://crbug.com/128841
1259 #define MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne \ 1261 #define MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne \
1260 DISABLED_PrerenderPageRemovingLinkWithTwoLinksRemovingOne 1262 DISABLED_PrerenderPageRemovingLinkWithTwoLinksRemovingOne
1261 #else 1263 #else
1262 #define MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne \ 1264 #define MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne \
1263 PrerenderPageRemovingLinkWithTwoLinksRemovingOne 1265 PrerenderPageRemovingLinkWithTwoLinksRemovingOne
1264 #endif // defined(OS_WIN) 1266 #endif // defined(OS_WIN)
1265 IN_PROC_BROWSER_TEST_F( 1267 IN_PROC_BROWSER_TEST_F(
1266 PrerenderBrowserTest, 1268 PrerenderBrowserTest,
1267 MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne) { 1269 MAYBE_PrerenderPageRemovingLinkWithTwoLinksRemovingOne) {
1270 GetPrerenderManager()->mutable_config().max_concurrency = 2;
1271 GetPrerenderManager()->mutable_config().max_concurrency_per_launcher = 2;
1268 set_loader_path("files/prerender/prerender_loader_removing_links.html"); 1272 set_loader_path("files/prerender/prerender_loader_removing_links.html");
1269 set_loader_query_and_fragment("?links_to_insert=2&links_to_remove=1"); 1273 set_loader_query_and_fragment("?links_to_insert=2&links_to_remove=1");
1270 PrerenderTestURL("files/prerender/prerender_page.html", 1274 PrerenderTestURL("files/prerender/prerender_page.html",
1271 FINAL_STATUS_USED, 1); 1275 FINAL_STATUS_USED, 1);
1272 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1)); 1276 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(1));
1273 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1)); 1277 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(1));
1274 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(2)); 1278 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(2));
1275 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(2)); 1279 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(2));
1276 1280
1277 RemoveLinkElements(); 1281 RemoveLinkElements();
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
1734 const char* const kHtmlFileA = 1738 const char* const kHtmlFileA =
1735 "files/prerender/prerender_infinite_a_multiple.html"; 1739 "files/prerender/prerender_infinite_a_multiple.html";
1736 const char* const kHtmlFileB = 1740 const char* const kHtmlFileB =
1737 "files/prerender/prerender_infinite_b_multiple.html"; 1741 "files/prerender/prerender_infinite_b_multiple.html";
1738 const char* const kHtmlFileC = 1742 const char* const kHtmlFileC =
1739 "files/prerender/prerender_infinite_c_multiple.html"; 1743 "files/prerender/prerender_infinite_c_multiple.html";
1740 1744
1741 // This test is conceptually simplest if concurrency is at two, since we 1745 // This test is conceptually simplest if concurrency is at two, since we
1742 // don't have to worry about which of kHtmlFileB or kHtmlFileC gets evicted. 1746 // don't have to worry about which of kHtmlFileB or kHtmlFileC gets evicted.
1743 GetPrerenderManager()->mutable_config().max_concurrency = 2; 1747 GetPrerenderManager()->mutable_config().max_concurrency = 2;
1748 GetPrerenderManager()->mutable_config().max_concurrency_per_launcher = 2;
1744 1749
1745 std::deque<FinalStatus> expected_final_status_queue; 1750 std::deque<FinalStatus> expected_final_status_queue;
1746 expected_final_status_queue.push_back(FINAL_STATUS_USED); 1751 expected_final_status_queue.push_back(FINAL_STATUS_USED);
1747 expected_final_status_queue.push_back(FINAL_STATUS_APP_TERMINATING); 1752 expected_final_status_queue.push_back(FINAL_STATUS_APP_TERMINATING);
1748 expected_final_status_queue.push_back(FINAL_STATUS_APP_TERMINATING); 1753 expected_final_status_queue.push_back(FINAL_STATUS_APP_TERMINATING);
1749 1754
1750 PrerenderTestURL(kHtmlFileA, expected_final_status_queue, 1); 1755 PrerenderTestURL(kHtmlFileA, expected_final_status_queue, 1);
1751 ASSERT_TRUE(GetPrerenderContents()); 1756 ASSERT_TRUE(GetPrerenderContents());
1752 GetPrerenderContents()->WaitForPendingPrerenders(2u); 1757 GetPrerenderContents()->WaitForPendingPrerenders(2u);
1753 1758
(...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after
2641 channel_close_watcher.WatchChannel( 2646 channel_close_watcher.WatchChannel(
2642 chrome::GetActiveWebContents(browser())->GetRenderProcessHost()); 2647 chrome::GetActiveWebContents(browser())->GetRenderProcessHost());
2643 NavigateToDestURL(); 2648 NavigateToDestURL();
2644 channel_close_watcher.WaitForChannelClose(); 2649 channel_close_watcher.WaitForChannelClose();
2645 2650
2646 ASSERT_TRUE(IsEmptyPrerenderLinkManager()); 2651 ASSERT_TRUE(IsEmptyPrerenderLinkManager());
2647 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); 2652 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message();
2648 } 2653 }
2649 2654
2650 } // namespace prerender 2655 } // namespace prerender
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_config.h » ('j') | chrome/browser/prerender/prerender_contents.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698