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

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

Issue 7017014: Fix issues when PrerenderContents::Destroy() is called during TabContents destruction. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Sync Created 9 years, 7 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) 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 "base/memory/scoped_vector.h" 5 #include "base/memory/scoped_vector.h"
6 #include "base/time.h" 6 #include "base/time.h"
7 #include "chrome/browser/prerender/prerender_contents.h" 7 #include "chrome/browser/prerender/prerender_contents.h"
8 #include "chrome/browser/prerender/prerender_manager.h" 8 #include "chrome/browser/prerender/prerender_manager.h"
9 #include "content/browser/browser_thread.h" 9 #include "content/browser/browser_thread.h"
10 #include "content/browser/renderer_host/render_view_host.h" 10 #include "content/browser/renderer_host/render_view_host.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 TestPrerenderManager() 59 TestPrerenderManager()
60 : PrerenderManager(NULL), 60 : PrerenderManager(NULL),
61 time_(base::Time::Now()), 61 time_(base::Time::Now()),
62 time_ticks_(base::TimeTicks::Now()), 62 time_ticks_(base::TimeTicks::Now()),
63 next_prerender_contents_(NULL) { 63 next_prerender_contents_(NULL) {
64 rate_limit_enabled_ = false; 64 rate_limit_enabled_ = false;
65 } 65 }
66 66
67 virtual ~TestPrerenderManager() { 67 virtual ~TestPrerenderManager() {
68 if (next_prerender_contents()) { 68 if (next_prerender_contents()) {
69 next_prerender_contents()->set_final_status( 69 next_prerender_contents_.release()->Destroy(
70 FINAL_STATUS_MANAGER_SHUTDOWN); 70 FINAL_STATUS_MANAGER_SHUTDOWN);
71 } 71 }
72 // Set the final status for all PrerenderContents with an expected final 72 // Set the final status for all PrerenderContents with an expected final
73 // status of FINAL_STATUS_USED. These values are normally set when the 73 // status of FINAL_STATUS_USED. These values are normally set when the
74 // prerendered RVH is swapped into a tab, which doesn't happen in these 74 // prerendered RVH is swapped into a tab, which doesn't happen in these
75 // unit tests. 75 // unit tests.
76 for (ScopedVector<PrerenderContents>::iterator it = 76 for (ScopedVector<PrerenderContents>::iterator it =
77 used_prerender_contents_.begin(); 77 used_prerender_contents_.begin();
78 it != used_prerender_contents_.end(); ++it) { 78 it != used_prerender_contents_.end(); ++it) {
79 (*it)->set_final_status(FINAL_STATUS_USED); 79 (*it)->set_final_status(FINAL_STATUS_USED);
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 DummyPrerenderContents* prerender_contents = 524 DummyPrerenderContents* prerender_contents =
525 prerender_manager()->CreateNextPrerenderContents(fragment_url, 525 prerender_manager()->CreateNextPrerenderContents(fragment_url,
526 FINAL_STATUS_USED); 526 FINAL_STATUS_USED);
527 EXPECT_TRUE(prerender_manager()->AddSimplePreload(fragment_url)); 527 EXPECT_TRUE(prerender_manager()->AddSimplePreload(fragment_url));
528 EXPECT_TRUE(prerender_contents->has_started()); 528 EXPECT_TRUE(prerender_contents->has_started());
529 ASSERT_EQ(prerender_contents, 529 ASSERT_EQ(prerender_contents,
530 prerender_manager()->GetEntry(other_fragment_url)); 530 prerender_manager()->GetEntry(other_fragment_url));
531 } 531 }
532 532
533 } // namespace prerender 533 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698