OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <utility> | 10 #include <utility> |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 #include "content/renderer/dom_storage/webstoragenamespace_impl.h" | 95 #include "content/renderer/dom_storage/webstoragenamespace_impl.h" |
96 #include "content/renderer/gpu/compositor_external_begin_frame_source.h" | 96 #include "content/renderer/gpu/compositor_external_begin_frame_source.h" |
97 #include "content/renderer/gpu/compositor_forwarding_message_filter.h" | 97 #include "content/renderer/gpu/compositor_forwarding_message_filter.h" |
98 #include "content/renderer/gpu/compositor_output_surface.h" | 98 #include "content/renderer/gpu/compositor_output_surface.h" |
99 #include "content/renderer/gpu/frame_swap_message_queue.h" | 99 #include "content/renderer/gpu/frame_swap_message_queue.h" |
100 #include "content/renderer/input/input_event_filter.h" | 100 #include "content/renderer/input/input_event_filter.h" |
101 #include "content/renderer/input/input_handler_manager.h" | 101 #include "content/renderer/input/input_handler_manager.h" |
102 #include "content/renderer/input/main_thread_input_event_filter.h" | 102 #include "content/renderer/input/main_thread_input_event_filter.h" |
103 #include "content/renderer/media/aec_dump_message_filter.h" | 103 #include "content/renderer/media/aec_dump_message_filter.h" |
104 #include "content/renderer/media/audio_input_message_filter.h" | 104 #include "content/renderer/media/audio_input_message_filter.h" |
105 #include "content/renderer/media/audio_message_filter.h" | 105 #include "content/renderer/media/audio_output_ipc_factory.h" |
106 #include "content/renderer/media/audio_renderer_mixer_manager.h" | 106 #include "content/renderer/media/audio_renderer_mixer_manager.h" |
107 #include "content/renderer/media/media_stream_center.h" | 107 #include "content/renderer/media/media_stream_center.h" |
108 #include "content/renderer/media/midi_message_filter.h" | 108 #include "content/renderer/media/midi_message_filter.h" |
109 #include "content/renderer/media/render_media_client.h" | 109 #include "content/renderer/media/render_media_client.h" |
110 #include "content/renderer/media/renderer_gpu_video_accelerator_factories.h" | 110 #include "content/renderer/media/renderer_gpu_video_accelerator_factories.h" |
111 #include "content/renderer/media/video_capture_impl_manager.h" | 111 #include "content/renderer/media/video_capture_impl_manager.h" |
112 #include "content/renderer/media/video_capture_message_filter.h" | 112 #include "content/renderer/media/video_capture_message_filter.h" |
113 #include "content/renderer/net_info_helper.h" | 113 #include "content/renderer/net_info_helper.h" |
114 #include "content/renderer/p2p/socket_dispatcher.h" | 114 #include "content/renderer/p2p/socket_dispatcher.h" |
115 #include "content/renderer/render_frame_proxy.h" | 115 #include "content/renderer/render_frame_proxy.h" |
116 #include "content/renderer/render_process_impl.h" | 116 #include "content/renderer/render_process_impl.h" |
117 #include "content/renderer/render_view_impl.h" | 117 #include "content/renderer/render_view_impl.h" |
118 #include "content/renderer/renderer_blink_platform_impl.h" | 118 #include "content/renderer/renderer_blink_platform_impl.h" |
119 #include "content/renderer/scheduler/resource_dispatch_throttler.h" | 119 #include "content/renderer/scheduler/resource_dispatch_throttler.h" |
120 #include "content/renderer/service_worker/embedded_worker_dispatcher.h" | 120 #include "content/renderer/service_worker/embedded_worker_dispatcher.h" |
121 #include "content/renderer/service_worker/service_worker_context_client.h" | 121 #include "content/renderer/service_worker/service_worker_context_client.h" |
122 #include "content/renderer/service_worker/service_worker_context_message_filter.
h" | 122 #include "content/renderer/service_worker/service_worker_context_message_filter.
h" |
123 #include "content/renderer/shared_worker/embedded_shared_worker_stub.h" | 123 #include "content/renderer/shared_worker/embedded_shared_worker_stub.h" |
124 #include "gin/public/debug.h" | 124 #include "gin/public/debug.h" |
125 #include "gpu/GLES2/gl2extchromium.h" | 125 #include "gpu/GLES2/gl2extchromium.h" |
126 #include "gpu/command_buffer/client/shared_memory_limits.h" | 126 #include "gpu/command_buffer/client/shared_memory_limits.h" |
127 #include "gpu/ipc/client/command_buffer_proxy_impl.h" | 127 #include "gpu/ipc/client/command_buffer_proxy_impl.h" |
128 #include "gpu/ipc/client/gpu_channel_host.h" | 128 #include "gpu/ipc/client/gpu_channel_host.h" |
129 #include "ipc/ipc_channel_handle.h" | 129 #include "ipc/ipc_channel_handle.h" |
130 #include "ipc/ipc_channel_mojo.h" | 130 #include "ipc/ipc_channel_mojo.h" |
131 #include "ipc/ipc_platform_file.h" | 131 #include "ipc/ipc_platform_file.h" |
132 #include "media/base/media.h" | 132 #include "media/base/media.h" |
| 133 #include "media/media_features.h" |
133 #include "media/renderers/gpu_video_accelerator_factories.h" | 134 #include "media/renderers/gpu_video_accelerator_factories.h" |
134 #include "mojo/common/common_type_converters.h" | 135 #include "mojo/common/common_type_converters.h" |
135 #include "mojo/public/cpp/bindings/strong_binding.h" | 136 #include "mojo/public/cpp/bindings/strong_binding.h" |
136 #include "net/base/net_errors.h" | 137 #include "net/base/net_errors.h" |
137 #include "net/base/port_util.h" | 138 #include "net/base/port_util.h" |
138 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 139 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
139 #include "net/base/url_util.h" | 140 #include "net/base/url_util.h" |
140 #include "services/shell/public/cpp/interface_provider.h" | 141 #include "services/shell/public/cpp/interface_provider.h" |
141 #include "services/shell/public/cpp/interface_registry.h" | 142 #include "services/shell/public/cpp/interface_registry.h" |
142 #include "skia/ext/event_tracer_impl.h" | 143 #include "skia/ext/event_tracer_impl.h" |
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
687 aec_dump_message_filter_ = new AecDumpMessageFilter( | 688 aec_dump_message_filter_ = new AecDumpMessageFilter( |
688 GetIOTaskRunner(), message_loop()->task_runner()); | 689 GetIOTaskRunner(), message_loop()->task_runner()); |
689 | 690 |
690 AddFilter(aec_dump_message_filter_.get()); | 691 AddFilter(aec_dump_message_filter_.get()); |
691 | 692 |
692 #endif // defined(ENABLE_WEBRTC) | 693 #endif // defined(ENABLE_WEBRTC) |
693 | 694 |
694 audio_input_message_filter_ = new AudioInputMessageFilter(GetIOTaskRunner()); | 695 audio_input_message_filter_ = new AudioInputMessageFilter(GetIOTaskRunner()); |
695 AddFilter(audio_input_message_filter_.get()); | 696 AddFilter(audio_input_message_filter_.get()); |
696 | 697 |
697 audio_message_filter_ = new AudioMessageFilter(GetIOTaskRunner()); | |
698 AddFilter(audio_message_filter_.get()); | |
699 | |
700 midi_message_filter_ = new MidiMessageFilter(GetIOTaskRunner()); | 698 midi_message_filter_ = new MidiMessageFilter(GetIOTaskRunner()); |
701 AddFilter(midi_message_filter_.get()); | 699 AddFilter(midi_message_filter_.get()); |
702 | 700 |
703 AddFilter((new IndexedDBMessageFilter(thread_safe_sender()))->GetFilter()); | 701 AddFilter((new IndexedDBMessageFilter(thread_safe_sender()))->GetFilter()); |
704 | 702 |
705 AddFilter((new CacheStorageMessageFilter(thread_safe_sender()))->GetFilter()); | 703 AddFilter((new CacheStorageMessageFilter(thread_safe_sender()))->GetFilter()); |
706 | 704 |
707 AddFilter((new ServiceWorkerContextMessageFilter())->GetFilter()); | 705 AddFilter((new ServiceWorkerContextMessageFilter())->GetFilter()); |
708 | 706 |
709 #if defined(USE_AURA) | 707 #if defined(USE_AURA) |
710 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 708 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
711 switches::kUseMusInRenderer)) { | 709 switches::kUseMusInRenderer)) { |
712 CreateRenderWidgetWindowTreeClientFactory(GetMojoShellConnection()); | 710 CreateRenderWidgetWindowTreeClientFactory(GetMojoShellConnection()); |
713 } | 711 } |
714 #endif | 712 #endif |
715 | 713 |
716 // Must be called before RenderThreadStarted() below. | 714 // Must be called before RenderThreadStarted() below. |
717 StartMojoShellConnection(); | 715 StartMojoShellConnection(); |
718 | 716 |
719 GetContentClient()->renderer()->RenderThreadStarted(); | 717 GetContentClient()->renderer()->RenderThreadStarted(); |
720 | 718 |
| 719 audio_output_ipc_factory_ = |
| 720 new AudioOutputIPCFactory(GetIOTaskRunner(), GetRemoteInterfaces()); |
| 721 |
721 InitSkiaEventTracer(); | 722 InitSkiaEventTracer(); |
722 base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( | 723 base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( |
723 skia::SkiaMemoryDumpProvider::GetInstance(), "Skia", nullptr); | 724 skia::SkiaMemoryDumpProvider::GetInstance(), "Skia", nullptr); |
724 | 725 |
725 const base::CommandLine& command_line = | 726 const base::CommandLine& command_line = |
726 *base::CommandLine::ForCurrentProcess(); | 727 *base::CommandLine::ForCurrentProcess(); |
727 | 728 |
728 #if defined(ENABLE_IPC_FUZZER) | 729 #if defined(ENABLE_IPC_FUZZER) |
729 if (command_line.HasSwitch(switches::kIpcDumpDirectory)) { | 730 if (command_line.HasSwitch(switches::kIpcDumpDirectory)) { |
730 base::FilePath dump_directory = | 731 base::FilePath dump_directory = |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
917 } | 918 } |
918 stream_texture_factory_ = nullptr; | 919 stream_texture_factory_ = nullptr; |
919 #endif | 920 #endif |
920 | 921 |
921 media_thread_.reset(); | 922 media_thread_.reset(); |
922 | 923 |
923 blink_platform_impl_->SetCompositorThread(nullptr); | 924 blink_platform_impl_->SetCompositorThread(nullptr); |
924 | 925 |
925 compositor_thread_.reset(); | 926 compositor_thread_.reset(); |
926 | 927 |
927 // AudioMessageFilter may be accessed on |media_thread_|, so shutdown after. | 928 audio_output_ipc_factory_ = nullptr; |
928 RemoveFilter(audio_message_filter_.get()); | |
929 audio_message_filter_ = nullptr; | |
930 | 929 |
931 categorized_worker_pool_->Shutdown(); | 930 categorized_worker_pool_->Shutdown(); |
932 | 931 |
933 main_input_callback_.Cancel(); | 932 main_input_callback_.Cancel(); |
934 input_handler_manager_.reset(); | 933 input_handler_manager_.reset(); |
935 if (input_event_filter_.get()) { | 934 if (input_event_filter_.get()) { |
936 RemoveFilter(input_event_filter_.get()); | 935 RemoveFilter(input_event_filter_.get()); |
937 input_event_filter_ = nullptr; | 936 input_event_filter_ = nullptr; |
938 } | 937 } |
939 | 938 |
(...skipping 1305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2245 if (blink::mainThreadIsolate()) { | 2244 if (blink::mainThreadIsolate()) { |
2246 blink::mainThreadIsolate()->MemoryPressureNotification( | 2245 blink::mainThreadIsolate()->MemoryPressureNotification( |
2247 v8::MemoryPressureLevel::kCritical); | 2246 v8::MemoryPressureLevel::kCritical); |
2248 blink::MemoryPressureNotificationToWorkerThreadIsolates( | 2247 blink::MemoryPressureNotificationToWorkerThreadIsolates( |
2249 v8::MemoryPressureLevel::kCritical); | 2248 v8::MemoryPressureLevel::kCritical); |
2250 } | 2249 } |
2251 } | 2250 } |
2252 | 2251 |
2253 | 2252 |
2254 } // namespace content | 2253 } // namespace content |
OLD | NEW |