Index: chrome/renderer/prerender/prerender_dispatcher.cc |
diff --git a/chrome/renderer/prerender/prerender_dispatcher.cc b/chrome/renderer/prerender/prerender_dispatcher.cc |
index 5e616b01a17ed217a28cd12bef0998c057a7189e..1ef433009becb2513872df90e3723d1fde101dca 100644 |
--- a/chrome/renderer/prerender/prerender_dispatcher.cc |
+++ b/chrome/renderer/prerender/prerender_dispatcher.cc |
@@ -127,6 +127,18 @@ bool PrerenderDispatcher::OnControlMessageReceived( |
return handled; |
} |
+void PrerenderDispatcher::OnRenderProcessShutdown() { |
+ // Renderer is shutting down, abandon all in-flight prerenders. |
+ for (auto it : prerenders_) { |
+ const PrerenderExtraData& extra_data = |
+ PrerenderExtraData::FromPrerender(it.second); |
+ content::RenderThread::Get()->Send( |
+ new PrerenderHostMsg_AbandonLinkRelPrerender( |
+ extra_data.prerender_id())); |
+ } |
+ prerenders_.clear(); |
+} |
+ |
void PrerenderDispatcher::add(const WebPrerender& prerender) { |
const PrerenderExtraData& extra_data = |
PrerenderExtraData::FromPrerender(prerender); |