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.h" | 5 #include "content/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 19 matching lines...) Expand all Loading... |
30 #include "content/common/plugin_messages.h" | 30 #include "content/common/plugin_messages.h" |
31 #include "content/common/renderer_preferences.h" | 31 #include "content/common/renderer_preferences.h" |
32 #include "content/common/resource_messages.h" | 32 #include "content/common/resource_messages.h" |
33 #include "content/common/view_messages.h" | 33 #include "content/common/view_messages.h" |
34 #include "content/common/web_database_observer_impl.h" | 34 #include "content/common/web_database_observer_impl.h" |
35 #include "content/plugin/npobject_util.h" | 35 #include "content/plugin/npobject_util.h" |
36 #include "content/renderer/content_renderer_client.h" | 36 #include "content/renderer/content_renderer_client.h" |
37 #include "content/renderer/gpu/gpu_channel_host.h" | 37 #include "content/renderer/gpu/gpu_channel_host.h" |
38 #include "content/renderer/gpu/gpu_video_service_host.h" | 38 #include "content/renderer/gpu/gpu_video_service_host.h" |
39 #include "content/renderer/indexed_db_dispatcher.h" | 39 #include "content/renderer/indexed_db_dispatcher.h" |
| 40 #include "content/renderer/media/audio_input_message_filter.h" |
| 41 #include "content/renderer/media/audio_message_filter.h" |
40 #include "content/renderer/media/video_capture_impl_manager.h" | 42 #include "content/renderer/media/video_capture_impl_manager.h" |
41 #include "content/renderer/media/video_capture_message_filter.h" | 43 #include "content/renderer/media/video_capture_message_filter.h" |
42 #include "content/renderer/plugin_channel_host.h" | 44 #include "content/renderer/plugin_channel_host.h" |
43 #include "content/renderer/render_process_impl.h" | 45 #include "content/renderer/render_process_impl.h" |
44 #include "content/renderer/render_process_observer.h" | 46 #include "content/renderer/render_process_observer.h" |
45 #include "content/renderer/render_view.h" | 47 #include "content/renderer/render_view.h" |
46 #include "content/renderer/render_view_visitor.h" | 48 #include "content/renderer/render_view_visitor.h" |
47 #include "content/renderer/renderer_webidbfactory_impl.h" | 49 #include "content/renderer/renderer_webidbfactory_impl.h" |
48 #include "content/renderer/renderer_webkitclient_impl.h" | 50 #include "content/renderer/renderer_webkitclient_impl.h" |
49 #include "ipc/ipc_channel_handle.h" | 51 #include "ipc/ipc_channel_handle.h" |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 | 169 |
168 appcache_dispatcher_.reset(new AppCacheDispatcher(this)); | 170 appcache_dispatcher_.reset(new AppCacheDispatcher(this)); |
169 indexed_db_dispatcher_.reset(new IndexedDBDispatcher()); | 171 indexed_db_dispatcher_.reset(new IndexedDBDispatcher()); |
170 | 172 |
171 db_message_filter_ = new DBMessageFilter(); | 173 db_message_filter_ = new DBMessageFilter(); |
172 AddFilter(db_message_filter_.get()); | 174 AddFilter(db_message_filter_.get()); |
173 | 175 |
174 vc_manager_ = new VideoCaptureImplManager(); | 176 vc_manager_ = new VideoCaptureImplManager(); |
175 AddFilter(vc_manager_->video_capture_message_filter()); | 177 AddFilter(vc_manager_->video_capture_message_filter()); |
176 | 178 |
| 179 audio_input_message_filter_ = new AudioInputMessageFilter(); |
| 180 AddFilter(audio_input_message_filter_.get()); |
| 181 |
| 182 audio_message_filter_ = new AudioMessageFilter(); |
| 183 AddFilter(audio_message_filter_.get()); |
| 184 |
177 content::GetContentClient()->renderer()->RenderThreadStarted(); | 185 content::GetContentClient()->renderer()->RenderThreadStarted(); |
178 | 186 |
179 TRACE_EVENT_END_ETW("RenderThread::Init", 0, ""); | 187 TRACE_EVENT_END_ETW("RenderThread::Init", 0, ""); |
180 } | 188 } |
181 | 189 |
182 RenderThread::~RenderThread() { | 190 RenderThread::~RenderThread() { |
183 FOR_EACH_OBSERVER( | 191 FOR_EACH_OBSERVER( |
184 RenderProcessObserver, observers_, OnRenderProcessShutdown()); | 192 RenderProcessObserver, observers_, OnRenderProcessShutdown()); |
185 | 193 |
186 // Wait for all databases to be closed. | 194 // Wait for all databases to be closed. |
187 if (web_database_observer_impl_.get()) | 195 if (web_database_observer_impl_.get()) |
188 web_database_observer_impl_->WaitForAllDatabasesToClose(); | 196 web_database_observer_impl_->WaitForAllDatabasesToClose(); |
189 | 197 |
190 // Shutdown in reverse of the initialization order. | 198 // Shutdown in reverse of the initialization order. |
| 199 RemoveFilter(audio_input_message_filter_.get()); |
| 200 audio_input_message_filter_ = NULL; |
| 201 |
| 202 RemoveFilter(audio_message_filter_.get()); |
| 203 audio_message_filter_ = NULL; |
| 204 |
191 RemoveFilter(vc_manager_->video_capture_message_filter()); | 205 RemoveFilter(vc_manager_->video_capture_message_filter()); |
192 | 206 |
193 RemoveFilter(db_message_filter_.get()); | 207 RemoveFilter(db_message_filter_.get()); |
194 db_message_filter_ = NULL; | 208 db_message_filter_ = NULL; |
195 | 209 |
196 // Shutdown the file thread if it's running. | 210 // Shutdown the file thread if it's running. |
197 if (file_thread_.get()) | 211 if (file_thread_.get()) |
198 file_thread_->Stop(); | 212 file_thread_->Stop(); |
199 | 213 |
200 if (webkit_client_.get()) | 214 if (webkit_client_.get()) |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 WebRuntimeFeatures::enableSessionStorage( | 601 WebRuntimeFeatures::enableSessionStorage( |
588 !command_line.HasSwitch(switches::kDisableSessionStorage)); | 602 !command_line.HasSwitch(switches::kDisableSessionStorage)); |
589 | 603 |
590 WebRuntimeFeatures::enableIndexedDatabase( | 604 WebRuntimeFeatures::enableIndexedDatabase( |
591 !command_line.HasSwitch(switches::kDisableIndexedDatabase)); | 605 !command_line.HasSwitch(switches::kDisableIndexedDatabase)); |
592 | 606 |
593 WebRuntimeFeatures::enableGeolocation( | 607 WebRuntimeFeatures::enableGeolocation( |
594 !command_line.HasSwitch(switches::kDisableGeolocation)); | 608 !command_line.HasSwitch(switches::kDisableGeolocation)); |
595 | 609 |
596 WebKit::WebRuntimeFeatures::enableMediaStream( | 610 WebKit::WebRuntimeFeatures::enableMediaStream( |
597 command_line.HasSwitch(switches::kEnableMediaStream)); | 611 command_line.HasSwitch(switches::kEnableMediaStream)); |
598 | 612 |
599 #if defined(OS_CHROMEOS) | 613 #if defined(OS_CHROMEOS) |
600 // TODO(crogers): enable once Web Audio has been tested and optimized. | 614 // TODO(crogers): enable once Web Audio has been tested and optimized. |
601 WebRuntimeFeatures::enableWebAudio(false); | 615 WebRuntimeFeatures::enableWebAudio(false); |
602 #else | 616 #else |
603 WebRuntimeFeatures::enableWebAudio( | 617 WebRuntimeFeatures::enableWebAudio( |
604 !command_line.HasSwitch(switches::kDisableWebAudio)); | 618 !command_line.HasSwitch(switches::kDisableWebAudio)); |
605 #endif | 619 #endif |
606 | 620 |
607 WebRuntimeFeatures::enablePushState(true); | 621 WebRuntimeFeatures::enablePushState(true); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
684 | 698 |
685 void RenderThread::RegisterExtension(v8::Extension* extension) { | 699 void RenderThread::RegisterExtension(v8::Extension* extension) { |
686 WebScriptController::registerExtension(extension); | 700 WebScriptController::registerExtension(extension); |
687 v8_extensions_.insert(extension->name()); | 701 v8_extensions_.insert(extension->name()); |
688 } | 702 } |
689 | 703 |
690 bool RenderThread::IsRegisteredExtension( | 704 bool RenderThread::IsRegisteredExtension( |
691 const std::string& v8_extension_name) const { | 705 const std::string& v8_extension_name) const { |
692 return v8_extensions_.find(v8_extension_name) != v8_extensions_.end(); | 706 return v8_extensions_.find(v8_extension_name) != v8_extensions_.end(); |
693 } | 707 } |
OLD | NEW |