Chromium Code Reviews| Index: chrome/browser/prerender/prerender_manager.cc |
| =================================================================== |
| --- chrome/browser/prerender/prerender_manager.cc (revision 85626) |
| +++ chrome/browser/prerender/prerender_manager.cc (working copy) |
| @@ -284,13 +284,16 @@ |
| PrerenderContents* prerender_contents = |
| CreatePrerenderContents(url, referrer); |
| - if (!prerender_contents || !prerender_contents->Init()) |
| + if (!prerender_contents) |
| return false; |
| // TODO(cbentzel): Move invalid checks here instead of PrerenderContents? |
| PrerenderContentsData data(prerender_contents, GetCurrentTime()); |
| + prerender_list_.push_back(data); |
| - prerender_list_.push_back(data); |
| + if (!prerender_contents->Init()) |
| + return false; |
| + |
| if (IsControlGroup()) { |
| data.contents_->set_final_status(FINAL_STATUS_CONTROL_GROUP); |
| } else { |
| @@ -574,7 +577,7 @@ |
| return true; |
| } |
| -void PrerenderManager::MoveEntryToPendingDelete(PrerenderContents* entry) { |
| +bool PrerenderManager::MoveEntryToPendingDelete(PrerenderContents* entry) { |
| DCHECK(CalledOnValidThread()); |
| DCHECK(!IsPendingDelete(entry)); |
| for (std::list<PrerenderContentsData>::iterator it = prerender_list_.begin(); |
| @@ -583,14 +586,17 @@ |
| if (it->contents_ == entry) { |
| RemovePendingPreload(entry); |
| prerender_list_.erase(it); |
| - break; |
| + pending_delete_list_.push_back(entry); |
|
Shishir
2011/05/18 18:34:32
I had initially pushed this outside the loop becau
mmenke
2011/05/18 18:50:37
Ok... Seems like the simplest way to do this robu
|
| + |
| + // Destroy the old TabContents relatively promptly to reduce resource |
| + // usage, and in the case of HTML5 media, reduce the chance of playing |
| + // any sound. |
| + PostCleanupTask(); |
| + |
| + return true; |
| } |
| } |
| - pending_delete_list_.push_back(entry); |
| - |
| - // Destroy the old TabContents relatively promptly to reduce resource usage, |
| - // and in the case of HTML5 media, reduce the change of playing any sound. |
| - PostCleanupTask(); |
| + return false; |
| } |
| bool PrerenderManager::IsPendingDelete(PrerenderContents* entry) const { |