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

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

Issue 10377058: Remove IsPendingDelete from PrerenderManager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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
« no previous file with comments | « chrome/browser/prerender/prerender_manager.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/prerender/prerender_manager.h" 5 #include "chrome/browser/prerender/prerender_manager.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 // list, instead of deleting directly here? 514 // list, instead of deleting directly here?
515 AddToHistory(prerender_contents.get()); 515 AddToHistory(prerender_contents.get());
516 RecordNavigation(url); 516 RecordNavigation(url);
517 return true; 517 return true;
518 } 518 }
519 519
520 void PrerenderManager::MoveEntryToPendingDelete(PrerenderContents* entry, 520 void PrerenderManager::MoveEntryToPendingDelete(PrerenderContents* entry,
521 FinalStatus final_status) { 521 FinalStatus final_status) {
522 DCHECK(CalledOnValidThread()); 522 DCHECK(CalledOnValidThread());
523 DCHECK(entry); 523 DCHECK(entry);
524 DCHECK(!IsPendingDelete(entry)); 524 DCHECK_EQ(0, std::count(pending_delete_list_.begin(),
mmenke 2012/05/09 14:48:08 nit: Might be nice to have a comment here, too.
525 pending_delete_list_.end(), entry));
525 526
526 for (PrerenderContentsDataList::iterator it = prerender_list_.begin(); 527 for (PrerenderContentsDataList::iterator it = prerender_list_.begin();
527 it != prerender_list_.end(); 528 it != prerender_list_.end();
528 ++it) { 529 ++it) {
529 if (it->contents_ == entry) { 530 if (it->contents_ == entry) {
530 bool swapped_in_dummy_replacement = false; 531 bool swapped_in_dummy_replacement = false;
531 532
532 // If this PrerenderContents is being deleted due to a cancellation, 533 // If this PrerenderContents is being deleted due to a cancellation,
533 // we need to create a dummy replacement for PPLT accounting purposes 534 // we need to create a dummy replacement for PPLT accounting purposes
534 // for the Match Complete group. 535 // for the Match Complete group.
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 TabContentsWrapper* prerender_tab_contents_wrapper = 693 TabContentsWrapper* prerender_tab_contents_wrapper =
693 (*it)->prerender_contents(); 694 (*it)->prerender_contents();
694 if (prerender_tab_contents_wrapper && 695 if (prerender_tab_contents_wrapper &&
695 prerender_tab_contents_wrapper->web_contents() == web_contents) 696 prerender_tab_contents_wrapper->web_contents() == web_contents)
696 return true; 697 return true;
697 } 698 }
698 699
699 return false; 700 return false;
700 } 701 }
701 702
702 bool PrerenderManager::DidPrerenderFinishLoading(const GURL& url) const {
703 DCHECK(CalledOnValidThread());
704 PrerenderContents* contents = FindEntry(url);
705 return contents ? contents->has_finished_loading() : false;
706 }
707
708 void PrerenderManager::MarkWebContentsAsPrerendered(WebContents* web_contents) { 703 void PrerenderManager::MarkWebContentsAsPrerendered(WebContents* web_contents) {
709 DCHECK(CalledOnValidThread()); 704 DCHECK(CalledOnValidThread());
710 prerendered_tab_contents_set_.insert(web_contents); 705 prerendered_tab_contents_set_.insert(web_contents);
711 } 706 }
712 707
713 void PrerenderManager::MarkWebContentsAsWouldBePrerendered( 708 void PrerenderManager::MarkWebContentsAsWouldBePrerendered(
714 WebContents* web_contents) { 709 WebContents* web_contents) {
715 DCHECK(CalledOnValidThread()); 710 DCHECK(CalledOnValidThread());
716 would_be_prerendered_tab_contents_set_.insert(web_contents); 711 would_be_prerendered_tab_contents_set_.insert(web_contents);
717 } 712 }
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
1059 const GURL& url, 1054 const GURL& url,
1060 const content::Referrer& referrer, 1055 const content::Referrer& referrer,
1061 Origin origin, 1056 Origin origin,
1062 uint8 experiment_id) { 1057 uint8 experiment_id) {
1063 DCHECK(CalledOnValidThread()); 1058 DCHECK(CalledOnValidThread());
1064 return prerender_contents_factory_->CreatePrerenderContents( 1059 return prerender_contents_factory_->CreatePrerenderContents(
1065 this, prerender_tracker_, profile_, url, 1060 this, prerender_tracker_, profile_, url,
1066 referrer, origin, experiment_id); 1061 referrer, origin, experiment_id);
1067 } 1062 }
1068 1063
1069 bool PrerenderManager::IsPendingDelete(PrerenderContents* entry) const {
1070 DCHECK(CalledOnValidThread());
1071 for (std::list<PrerenderContents*>::const_iterator it =
1072 pending_delete_list_.begin();
1073 it != pending_delete_list_.end();
1074 ++it) {
1075 if (*it == entry)
1076 return true;
1077 }
1078
1079 return false;
1080 }
1081
1082 void PrerenderManager::DeletePendingDeleteEntries() { 1064 void PrerenderManager::DeletePendingDeleteEntries() {
1083 while (!pending_delete_list_.empty()) { 1065 while (!pending_delete_list_.empty()) {
1084 PrerenderContents* contents = pending_delete_list_.front(); 1066 PrerenderContents* contents = pending_delete_list_.front();
1085 pending_delete_list_.pop_front(); 1067 pending_delete_list_.pop_front();
1086 delete contents; 1068 delete contents;
1087 } 1069 }
1088 } 1070 }
1089 1071
1090 PrerenderManager::PrerenderContentsData* PrerenderManager::FindEntryData( 1072 PrerenderManager::PrerenderContentsData* PrerenderManager::FindEntryData(
1091 const GURL& url) { 1073 const GURL& url) {
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
1268 if (!render_process_host || !render_process_host->GetBrowserContext()) 1250 if (!render_process_host || !render_process_host->GetBrowserContext())
1269 return NULL; 1251 return NULL;
1270 Profile* profile = Profile::FromBrowserContext( 1252 Profile* profile = Profile::FromBrowserContext(
1271 render_process_host->GetBrowserContext()); 1253 render_process_host->GetBrowserContext());
1272 if (!profile) 1254 if (!profile)
1273 return NULL; 1255 return NULL;
1274 return PrerenderManagerFactory::GetInstance()->GetForProfile(profile); 1256 return PrerenderManagerFactory::GetInstance()->GetForProfile(profile);
1275 } 1257 }
1276 1258
1277 } // namespace prerender 1259 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698