| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |