Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Side by Side Diff: chrome/renderer/render_thread.cc

Issue 6750014: Add a RenderProcessObserver. For now this will be primarily used to filter control messages, so ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/render_thread.h" 5 #include "chrome/renderer/render_thread.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <map> 9 #include <map>
10 #include <vector> 10 #include <vector>
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 #include "content/common/resource_dispatcher.h" 60 #include "content/common/resource_dispatcher.h"
61 #include "content/common/resource_messages.h" 61 #include "content/common/resource_messages.h"
62 #include "content/common/view_messages.h" 62 #include "content/common/view_messages.h"
63 #include "content/common/web_database_observer_impl.h" 63 #include "content/common/web_database_observer_impl.h"
64 #include "content/plugin/npobject_util.h" 64 #include "content/plugin/npobject_util.h"
65 #include "content/renderer/cookie_message_filter.h" 65 #include "content/renderer/cookie_message_filter.h"
66 #include "content/renderer/gpu_channel_host.h" 66 #include "content/renderer/gpu_channel_host.h"
67 #include "content/renderer/gpu_video_service_host.h" 67 #include "content/renderer/gpu_video_service_host.h"
68 #include "content/renderer/indexed_db_dispatcher.h" 68 #include "content/renderer/indexed_db_dispatcher.h"
69 #include "content/renderer/plugin_channel_host.h" 69 #include "content/renderer/plugin_channel_host.h"
70 #include "content/renderer/render_process_observer.h"
70 #include "content/renderer/render_view.h" 71 #include "content/renderer/render_view.h"
71 #include "content/renderer/render_view_visitor.h" 72 #include "content/renderer/render_view_visitor.h"
72 #include "content/renderer/renderer_webidbfactory_impl.h" 73 #include "content/renderer/renderer_webidbfactory_impl.h"
73 #include "content/renderer/renderer_webkitclient_impl.h" 74 #include "content/renderer/renderer_webkitclient_impl.h"
74 #include "ipc/ipc_channel_handle.h" 75 #include "ipc/ipc_channel_handle.h"
75 #include "ipc/ipc_platform_file.h" 76 #include "ipc/ipc_platform_file.h"
76 #include "net/base/net_errors.h" 77 #include "net/base/net_errors.h"
77 #include "net/base/net_util.h" 78 #include "net/base/net_util.h"
78 #include "third_party/sqlite/sqlite3.h" 79 #include "third_party/sqlite/sqlite3.h"
79 #include "third_party/tcmalloc/chromium/src/google/malloc_extension.h" 80 #include "third_party/tcmalloc/chromium/src/google/malloc_extension.h"
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 325
325 #if defined(OS_POSIX) 326 #if defined(OS_POSIX)
326 suicide_on_channel_error_filter_ = new SuicideOnChannelErrorFilter; 327 suicide_on_channel_error_filter_ = new SuicideOnChannelErrorFilter;
327 AddFilter(suicide_on_channel_error_filter_.get()); 328 AddFilter(suicide_on_channel_error_filter_.get());
328 #endif 329 #endif
329 330
330 TRACE_EVENT_END("RenderThread::Init", 0, ""); 331 TRACE_EVENT_END("RenderThread::Init", 0, "");
331 } 332 }
332 333
333 RenderThread::~RenderThread() { 334 RenderThread::~RenderThread() {
335 for (RenderProcessObserverList::iterator i = observers_.begin();
336 i != observers_.end(); ++i) {
337 (*i)->OnRenderProcessShutdown();
338 }
339
334 // Wait for all databases to be closed. 340 // Wait for all databases to be closed.
335 if (web_database_observer_impl_.get()) 341 if (web_database_observer_impl_.get())
336 web_database_observer_impl_->WaitForAllDatabasesToClose(); 342 web_database_observer_impl_->WaitForAllDatabasesToClose();
337 343
338 // Shutdown in reverse of the initialization order. 344 // Shutdown in reverse of the initialization order.
339 RemoveFilter(db_message_filter_.get()); 345 RemoveFilter(db_message_filter_.get());
340 db_message_filter_ = NULL; 346 db_message_filter_ = NULL;
341 RemoveFilter(devtools_agent_filter_.get()); 347 RemoveFilter(devtools_agent_filter_.get());
342 348
343 // Shutdown the file thread if it's running. 349 // Shutdown the file thread if it's running.
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 void RenderThread::OnDOMStorageEvent( 633 void RenderThread::OnDOMStorageEvent(
628 const DOMStorageMsg_Event_Params& params) { 634 const DOMStorageMsg_Event_Params& params) {
629 if (!dom_storage_event_dispatcher_.get()) 635 if (!dom_storage_event_dispatcher_.get())
630 dom_storage_event_dispatcher_.reset(WebStorageEventDispatcher::create()); 636 dom_storage_event_dispatcher_.reset(WebStorageEventDispatcher::create());
631 dom_storage_event_dispatcher_->dispatchStorageEvent(params.key, 637 dom_storage_event_dispatcher_->dispatchStorageEvent(params.key,
632 params.old_value, params.new_value, params.origin, params.url, 638 params.old_value, params.new_value, params.origin, params.url,
633 params.storage_type == DOM_STORAGE_LOCAL); 639 params.storage_type == DOM_STORAGE_LOCAL);
634 } 640 }
635 641
636 bool RenderThread::OnControlMessageReceived(const IPC::Message& msg) { 642 bool RenderThread::OnControlMessageReceived(const IPC::Message& msg) {
643 for (RenderProcessObserverList::iterator i = observers_.begin();
644 i != observers_.end(); ++i) {
645 if ((*i)->OnControlMessageReceived(msg))
646 return true;
647 }
648
637 // Some messages are handled by delegates. 649 // Some messages are handled by delegates.
638 if (appcache_dispatcher_->OnMessageReceived(msg)) 650 if (appcache_dispatcher_->OnMessageReceived(msg))
639 return true; 651 return true;
640 if (indexed_db_dispatcher_->OnMessageReceived(msg)) 652 if (indexed_db_dispatcher_->OnMessageReceived(msg))
641 return true; 653 return true;
642 654
643 bool handled = true; 655 bool handled = true;
644 IPC_BEGIN_MESSAGE_MAP(RenderThread, msg) 656 IPC_BEGIN_MESSAGE_MAP(RenderThread, msg)
645 IPC_MESSAGE_HANDLER(ViewMsg_VisitedLink_NewTable, OnUpdateVisitedLinks) 657 IPC_MESSAGE_HANDLER(ViewMsg_VisitedLink_NewTable, OnUpdateVisitedLinks)
646 IPC_MESSAGE_HANDLER(ViewMsg_VisitedLink_Add, OnAddVisitedLinks) 658 IPC_MESSAGE_HANDLER(ViewMsg_VisitedLink_Add, OnAddVisitedLinks)
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after
1171 } 1183 }
1172 1184
1173 return false; 1185 return false;
1174 } 1186 }
1175 1187
1176 void RenderThread::RegisterExtension(v8::Extension* extension, 1188 void RenderThread::RegisterExtension(v8::Extension* extension,
1177 bool restrict_to_extensions) { 1189 bool restrict_to_extensions) {
1178 WebScriptController::registerExtension(extension); 1190 WebScriptController::registerExtension(extension);
1179 v8_extensions_[extension->name()] = restrict_to_extensions; 1191 v8_extensions_[extension->name()] = restrict_to_extensions;
1180 } 1192 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698