Index: chrome/renderer/render_thread.cc |
=================================================================== |
--- chrome/renderer/render_thread.cc (revision 79468) |
+++ chrome/renderer/render_thread.cc (working copy) |
@@ -67,6 +67,7 @@ |
#include "content/renderer/gpu_video_service_host.h" |
#include "content/renderer/indexed_db_dispatcher.h" |
#include "content/renderer/plugin_channel_host.h" |
+#include "content/renderer/render_process_observer.h" |
#include "content/renderer/render_view.h" |
#include "content/renderer/render_view_visitor.h" |
#include "content/renderer/renderer_webidbfactory_impl.h" |
@@ -331,6 +332,11 @@ |
} |
RenderThread::~RenderThread() { |
+ for (RenderProcessObserverList::iterator i = observers_.begin(); |
+ i != observers_.end(); ++i) { |
+ (*i)->OnRenderProcessShutdown(); |
+ } |
+ |
// Wait for all databases to be closed. |
if (web_database_observer_impl_.get()) |
web_database_observer_impl_->WaitForAllDatabasesToClose(); |
@@ -634,6 +640,12 @@ |
} |
bool RenderThread::OnControlMessageReceived(const IPC::Message& msg) { |
+ for (RenderProcessObserverList::iterator i = observers_.begin(); |
+ i != observers_.end(); ++i) { |
+ if ((*i)->OnControlMessageReceived(msg)) |
+ return true; |
+ } |
+ |
// Some messages are handled by delegates. |
if (appcache_dispatcher_->OnMessageReceived(msg)) |
return true; |