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 "content/renderer/render_thread_impl.h" | 5 #include "content/renderer/render_thread_impl.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 25 matching lines...) Expand all Loading... |
36 #include "content/common/web_database_observer_impl.h" | 36 #include "content/common/web_database_observer_impl.h" |
37 #include "content/public/common/content_switches.h" | 37 #include "content/public/common/content_switches.h" |
38 #include "content/public/common/renderer_preferences.h" | 38 #include "content/public/common/renderer_preferences.h" |
39 #include "content/public/renderer/content_renderer_client.h" | 39 #include "content/public/renderer/content_renderer_client.h" |
40 #include "content/public/renderer/render_process_observer.h" | 40 #include "content/public/renderer/render_process_observer.h" |
41 #include "content/public/renderer/render_view_visitor.h" | 41 #include "content/public/renderer/render_view_visitor.h" |
42 #include "content/renderer/devtools_agent_filter.h" | 42 #include "content/renderer/devtools_agent_filter.h" |
43 #include "content/renderer/gpu/compositor_thread.h" | 43 #include "content/renderer/gpu/compositor_thread.h" |
44 #include "content/renderer/gpu/gpu_channel_host.h" | 44 #include "content/renderer/gpu/gpu_channel_host.h" |
45 #include "content/renderer/indexed_db_dispatcher.h" | 45 #include "content/renderer/indexed_db_dispatcher.h" |
| 46 #include "content/renderer/indexed_db_message_filter.h" |
46 #include "content/renderer/media/audio_input_message_filter.h" | 47 #include "content/renderer/media/audio_input_message_filter.h" |
47 #include "content/renderer/media/audio_message_filter.h" | 48 #include "content/renderer/media/audio_message_filter.h" |
48 #include "content/renderer/media/video_capture_impl_manager.h" | 49 #include "content/renderer/media/video_capture_impl_manager.h" |
49 #include "content/renderer/media/video_capture_message_filter.h" | 50 #include "content/renderer/media/video_capture_message_filter.h" |
50 #include "content/renderer/plugin_channel_host.h" | 51 #include "content/renderer/plugin_channel_host.h" |
51 #include "content/renderer/render_process_impl.h" | 52 #include "content/renderer/render_process_impl.h" |
52 #include "content/renderer/render_view_impl.h" | 53 #include "content/renderer/render_view_impl.h" |
53 #include "content/renderer/renderer_webidbfactory_impl.h" | 54 #include "content/renderer/renderer_webidbfactory_impl.h" |
54 #include "content/renderer/renderer_webkitplatformsupport_impl.h" | 55 #include "content/renderer/renderer_webkitplatformsupport_impl.h" |
55 #include "ipc/ipc_channel_handle.h" | 56 #include "ipc/ipc_channel_handle.h" |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 notify_webkit_of_modal_loop_ = true; | 192 notify_webkit_of_modal_loop_ = true; |
192 plugin_refresh_allowed_ = true; | 193 plugin_refresh_allowed_ = true; |
193 widget_count_ = 0; | 194 widget_count_ = 0; |
194 hidden_widget_count_ = 0; | 195 hidden_widget_count_ = 0; |
195 idle_notification_delay_in_ms_ = kInitialIdleHandlerDelayMs; | 196 idle_notification_delay_in_ms_ = kInitialIdleHandlerDelayMs; |
196 idle_notifications_to_skip_ = 0; | 197 idle_notifications_to_skip_ = 0; |
197 compositor_initialized_ = false; | 198 compositor_initialized_ = false; |
198 task_factory_.reset(new ScopedRunnableMethodFactory<RenderThreadImpl>(this)); | 199 task_factory_.reset(new ScopedRunnableMethodFactory<RenderThreadImpl>(this)); |
199 | 200 |
200 appcache_dispatcher_.reset(new AppCacheDispatcher(Get())); | 201 appcache_dispatcher_.reset(new AppCacheDispatcher(Get())); |
201 indexed_db_dispatcher_.reset(new IndexedDBDispatcher()); | 202 main_thread_indexed_db_dispatcher_.reset( |
| 203 IndexedDBDispatcher::ThreadSpecificInstance()); |
202 | 204 |
203 db_message_filter_ = new DBMessageFilter(); | 205 db_message_filter_ = new DBMessageFilter(); |
204 AddFilter(db_message_filter_.get()); | 206 AddFilter(db_message_filter_.get()); |
205 | 207 |
206 vc_manager_ = new VideoCaptureImplManager(); | 208 vc_manager_ = new VideoCaptureImplManager(); |
207 AddFilter(vc_manager_->video_capture_message_filter()); | 209 AddFilter(vc_manager_->video_capture_message_filter()); |
208 | 210 |
209 audio_input_message_filter_ = new AudioInputMessageFilter(); | 211 audio_input_message_filter_ = new AudioInputMessageFilter(); |
210 AddFilter(audio_input_message_filter_.get()); | 212 AddFilter(audio_input_message_filter_.get()); |
211 | 213 |
212 audio_message_filter_ = new AudioMessageFilter(); | 214 audio_message_filter_ = new AudioMessageFilter(); |
213 AddFilter(audio_message_filter_.get()); | 215 AddFilter(audio_message_filter_.get()); |
214 | 216 |
215 devtools_agent_message_filter_ = new DevToolsAgentFilter(); | 217 devtools_agent_message_filter_ = new DevToolsAgentFilter(); |
216 AddFilter(devtools_agent_message_filter_.get()); | 218 AddFilter(devtools_agent_message_filter_.get()); |
217 | 219 |
| 220 AddFilter(new IndexedDBMessageFilter); |
| 221 |
218 content::GetContentClient()->renderer()->RenderThreadStarted(); | 222 content::GetContentClient()->renderer()->RenderThreadStarted(); |
219 | 223 |
220 TRACE_EVENT_END_ETW("RenderThreadImpl::Init", 0, ""); | 224 TRACE_EVENT_END_ETW("RenderThreadImpl::Init", 0, ""); |
221 } | 225 } |
222 | 226 |
223 RenderThreadImpl::~RenderThreadImpl() { | 227 RenderThreadImpl::~RenderThreadImpl() { |
224 FOR_EACH_OBSERVER( | 228 FOR_EACH_OBSERVER( |
225 RenderProcessObserver, observers_, OnRenderProcessShutdown()); | 229 RenderProcessObserver, observers_, OnRenderProcessShutdown()); |
226 | 230 |
227 // Wait for all databases to be closed. | 231 // Wait for all databases to be closed. |
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
701 ObserverListBase<RenderProcessObserver>::Iterator it(observers_); | 705 ObserverListBase<RenderProcessObserver>::Iterator it(observers_); |
702 RenderProcessObserver* observer; | 706 RenderProcessObserver* observer; |
703 while ((observer = it.GetNext()) != NULL) { | 707 while ((observer = it.GetNext()) != NULL) { |
704 if (observer->OnControlMessageReceived(msg)) | 708 if (observer->OnControlMessageReceived(msg)) |
705 return true; | 709 return true; |
706 } | 710 } |
707 | 711 |
708 // Some messages are handled by delegates. | 712 // Some messages are handled by delegates. |
709 if (appcache_dispatcher_->OnMessageReceived(msg)) | 713 if (appcache_dispatcher_->OnMessageReceived(msg)) |
710 return true; | 714 return true; |
711 if (indexed_db_dispatcher_->OnMessageReceived(msg)) | |
712 return true; | |
713 | 715 |
714 bool handled = true; | 716 bool handled = true; |
715 IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg) | 717 IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg) |
716 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForCurrentURL, | 718 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForCurrentURL, |
717 OnSetZoomLevelForCurrentURL) | 719 OnSetZoomLevelForCurrentURL) |
718 IPC_MESSAGE_HANDLER(ViewMsg_SetNextPageID, OnSetNextPageID) | 720 IPC_MESSAGE_HANDLER(ViewMsg_SetNextPageID, OnSetNextPageID) |
719 IPC_MESSAGE_HANDLER(ViewMsg_SetCSSColors, OnSetCSSColors) | 721 IPC_MESSAGE_HANDLER(ViewMsg_SetCSSColors, OnSetCSSColors) |
720 // TODO(port): removed from render_messages_internal.h; | 722 // TODO(port): removed from render_messages_internal.h; |
721 // is there a new non-windows message I should add here? | 723 // is there a new non-windows message I should add here? |
722 IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView) | 724 IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView) |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
857 | 859 |
858 scoped_refptr<base::MessageLoopProxy> | 860 scoped_refptr<base::MessageLoopProxy> |
859 RenderThreadImpl::GetFileThreadMessageLoopProxy() { | 861 RenderThreadImpl::GetFileThreadMessageLoopProxy() { |
860 DCHECK(message_loop() == MessageLoop::current()); | 862 DCHECK(message_loop() == MessageLoop::current()); |
861 if (!file_thread_.get()) { | 863 if (!file_thread_.get()) { |
862 file_thread_.reset(new base::Thread("Renderer::FILE")); | 864 file_thread_.reset(new base::Thread("Renderer::FILE")); |
863 file_thread_->Start(); | 865 file_thread_->Start(); |
864 } | 866 } |
865 return file_thread_->message_loop_proxy(); | 867 return file_thread_->message_loop_proxy(); |
866 } | 868 } |
OLD | NEW |