Index: chrome/renderer/prerender/prerender_dispatcher.cc |
diff --git a/chrome/renderer/prerender/prerender_dispatcher.cc b/chrome/renderer/prerender/prerender_dispatcher.cc |
index d9c4b93c3e86c834bee8658608e3293f61e84b6b..b024053af616862a0906ec29af22ec1a3d7e0d7b 100644 |
--- a/chrome/renderer/prerender/prerender_dispatcher.cc |
+++ b/chrome/renderer/prerender/prerender_dispatcher.cc |
@@ -46,6 +46,19 @@ void PrerenderDispatcher::OnPrerenderStart(int prerender_id) { |
OnPrerenderAddAlias(prerender_id, prerender.url()); |
} |
+void PrerenderDispatcher::OnPrerenderStopLoading(int prerender_id) { |
+ DCHECK_NE(0u, prerenders_.count(prerender_id)); |
+ std::map<int, WebPrerender>::iterator it = prerenders_.find(prerender_id); |
+ |
+ WebPrerender& prerender = it->second; |
+ |
+ // The prerender should only be null in unit tests. |
mmenke
2012/12/27 19:11:08
Do unit tests actually simulate this event?
gavinp
2012/12/28 13:23:15
Yes. See PrerenderDispatcherTest.PrerenderDispatch
mmenke
2012/12/28 18:48:36
It calls OnPrerenderStop, not OnPrerenderStopLoadi
gavinp
2012/12/28 20:13:16
Right. And since this function is a NOP and untest
|
+ if (prerender.isNull()) |
+ return; |
+ |
+ prerender.didSendLoadForPrerender(); |
+} |
+ |
void PrerenderDispatcher::OnPrerenderAddAlias(int prerender_id, |
const GURL& url) { |
DCHECK_NE(0u, prerenders_.count(prerender_id)); |
@@ -84,6 +97,8 @@ bool PrerenderDispatcher::OnControlMessageReceived( |
bool handled = true; |
IPC_BEGIN_MESSAGE_MAP(PrerenderDispatcher, message) |
IPC_MESSAGE_HANDLER(PrerenderMsg_OnPrerenderStart, OnPrerenderStart) |
+ IPC_MESSAGE_HANDLER(PrerenderMsg_OnPrerenderStopLoading, |
+ OnPrerenderStopLoading) |
IPC_MESSAGE_HANDLER(PrerenderMsg_OnPrerenderAddAlias, OnPrerenderAddAlias) |
IPC_MESSAGE_HANDLER(PrerenderMsg_OnPrerenderStop, OnPrerenderStop) |
IPC_MESSAGE_UNHANDLED(handled = false) |