Index: chrome/browser/prerender/prerender_link_manager.cc |
diff --git a/chrome/browser/prerender/prerender_link_manager.cc b/chrome/browser/prerender/prerender_link_manager.cc |
index 1f4bc51cf51d7447d9a230edeaab45f86599f370..c764f4c0772e7f9189f78e4d29256bd27ae0f83b 100644 |
--- a/chrome/browser/prerender/prerender_link_manager.cc |
+++ b/chrome/browser/prerender/prerender_link_manager.cc |
@@ -392,16 +392,20 @@ void PrerenderLinkManager::StartPrerenders() { |
continue; |
} |
- // We have successfully started a new prerender. |
- (*i)->handle = handle.release(); |
- ++total_started_prerender_count; |
- (*i)->handle->SetObserver(this); |
- if ((*i)->handle->IsPrerendering()) |
+ if (handle->IsPrerendering()) { |
+ // We have successfully started a new prerender. |
+ (*i)->handle = handle.release(); |
+ ++total_started_prerender_count; |
+ (*i)->handle->SetObserver(this); |
OnPrerenderStart((*i)->handle); |
- RecordLinkManagerStarting((*i)->rel_types); |
- |
- running_launcher_and_render_view_routes.insert( |
- launcher_and_render_view_route); |
+ RecordLinkManagerStarting((*i)->rel_types); |
+ running_launcher_and_render_view_routes.insert( |
+ launcher_and_render_view_route); |
+ } else { |
+ Send((*i)->launcher_child_id, |
+ new PrerenderMsg_OnPrerenderStop((*i)->prerender_id)); |
+ prerenders_.erase(*i); |
+ } |
} |
} |
@@ -522,7 +526,7 @@ void PrerenderLinkManager::OnPrerenderStop( |
return; |
Send(prerender->launcher_child_id, |
- new PrerenderMsg_OnPrerenderStop(prerender->prerender_id)); |
+ new PrerenderMsg_OnPrerenderStop(prerender->prerender_id)); |
RemovePrerender(prerender); |
StartPrerenders(); |
} |