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

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

Issue 12328149: Don't start prerenders for prerendered pages queued for deletion. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Oops Created 7 years, 9 months 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 #include <vector> 6 #include <vector>
7 7
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 PrerenderManager* prerender_manager, 439 PrerenderManager* prerender_manager,
440 Profile* profile, 440 Profile* profile,
441 const GURL& url, 441 const GURL& url,
442 const content::Referrer& referrer, 442 const content::Referrer& referrer,
443 Origin origin, 443 Origin origin,
444 uint8 experiment_id) OVERRIDE { 444 uint8 experiment_id) OVERRIDE {
445 FinalStatus expected_final_status = FINAL_STATUS_MAX; 445 FinalStatus expected_final_status = FINAL_STATUS_MAX;
446 if (!expected_final_status_queue_.empty()) { 446 if (!expected_final_status_queue_.empty()) {
447 expected_final_status = expected_final_status_queue_.front(); 447 expected_final_status = expected_final_status_queue_.front();
448 expected_final_status_queue_.pop_front(); 448 expected_final_status_queue_.pop_front();
449 } else {
450 // There shouldn't be any unexpected prerenders.
451 ADD_FAILURE() << "Unexpected prerender attempt";
449 } 452 }
450 VLOG(1) << "Creating prerender contents for " << url.path() << 453 VLOG(1) << "Creating prerender contents for " << url.path() <<
451 " with expected final status " << expected_final_status; 454 " with expected final status " << expected_final_status;
452 VLOG(1) << expected_final_status_queue_.size() << " left in the queue."; 455 VLOG(1) << expected_final_status_queue_.size() << " left in the queue.";
453 return new TestPrerenderContents(prerender_manager, 456 return new TestPrerenderContents(prerender_manager,
454 profile, url, referrer, origin, 457 profile, url, referrer, origin,
455 expected_number_of_loads_, 458 expected_number_of_loads_,
456 expected_final_status, 459 expected_final_status,
457 prerender_should_wait_for_ready_title_); 460 prerender_should_wait_for_ready_title_);
458 } 461 }
(...skipping 1995 matching lines...) Expand 10 before | Expand all | Expand 10 after
2454 2457
2455 MessageLoop::current()->PostTask( 2458 MessageLoop::current()->PostTask(
2456 FROM_HERE, base::Bind(&CancelAllPrerenders, GetPrerenderManager())); 2459 FROM_HERE, base::Bind(&CancelAllPrerenders, GetPrerenderManager()));
2457 content::RunMessageLoop(); 2460 content::RunMessageLoop();
2458 2461
2459 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); 2462 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0));
2460 EXPECT_TRUE(DidReceivePrerenderStopEventForLinkNumber(0)); 2463 EXPECT_TRUE(DidReceivePrerenderStopEventForLinkNumber(0));
2461 EXPECT_FALSE(HadPrerenderEventErrors()); 2464 EXPECT_FALSE(HadPrerenderEventErrors());
2462 } 2465 }
2463 2466
2467 // Cancels the prerender of a page with its own prerender. The second prerender
2468 // should never be started.
2469 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
2470 PrerenderCancelPrerenderWithPrerender) {
2471 PrerenderTestURL("files/prerender/prerender_infinite_a.html",
2472 FINAL_STATUS_CANCELLED,
2473 1);
2474 // Post a task to cancel all the prerenders.
2475 MessageLoop::current()->PostTask(
2476 FROM_HERE, base::Bind(&CancelAllPrerenders, GetPrerenderManager()));
2477 content::RunMessageLoop();
2478 EXPECT_TRUE(GetPrerenderContents() == NULL);
2479 }
2480
2464 // PrerenderBrowserTest.PrerenderEventsNoLoad may pass flakily on regression, 2481 // PrerenderBrowserTest.PrerenderEventsNoLoad may pass flakily on regression,
2465 // so please be aggressive about filing bugs when this test is failing. 2482 // so please be aggressive about filing bugs when this test is failing.
2466 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderEventsNoLoad) { 2483 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderEventsNoLoad) {
2467 // This should be canceled. 2484 // This should be canceled.
2468 PrerenderTestURL("files/prerender/prerender_http_auth_container.html", 2485 PrerenderTestURL("files/prerender/prerender_http_auth_container.html",
2469 FINAL_STATUS_AUTH_NEEDED, 2486 FINAL_STATUS_AUTH_NEEDED,
2470 1); 2487 1);
2471 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0)); 2488 EXPECT_TRUE(DidReceivePrerenderStartEventForLinkNumber(0));
2472 EXPECT_FALSE(DidReceivePrerenderLoadEventForLinkNumber(0)); 2489 EXPECT_FALSE(DidReceivePrerenderLoadEventForLinkNumber(0));
2473 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0)); 2490 EXPECT_FALSE(DidReceivePrerenderStopEventForLinkNumber(0));
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
2725 channel_close_watcher.WatchChannel(browser()->tab_strip_model()-> 2742 channel_close_watcher.WatchChannel(browser()->tab_strip_model()->
2726 GetActiveWebContents()->GetRenderProcessHost()); 2743 GetActiveWebContents()->GetRenderProcessHost());
2727 NavigateToDestURL(); 2744 NavigateToDestURL();
2728 channel_close_watcher.WaitForChannelClose(); 2745 channel_close_watcher.WaitForChannelClose();
2729 2746
2730 ASSERT_TRUE(IsEmptyPrerenderLinkManager()); 2747 ASSERT_TRUE(IsEmptyPrerenderLinkManager());
2731 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); 2748 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message();
2732 } 2749 }
2733 2750
2734 } // namespace prerender 2751 } // namespace prerender
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_manager.cc » ('j') | chrome/browser/prerender/prerender_manager.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698