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 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 #include "content/renderer/shared_worker/embedded_shared_worker_stub.h" | 125 #include "content/renderer/shared_worker/embedded_shared_worker_stub.h" |
126 #include "gin/public/debug.h" | 126 #include "gin/public/debug.h" |
127 #include "gpu/GLES2/gl2extchromium.h" | 127 #include "gpu/GLES2/gl2extchromium.h" |
128 #include "gpu/command_buffer/client/shared_memory_limits.h" | 128 #include "gpu/command_buffer/client/shared_memory_limits.h" |
129 #include "gpu/ipc/client/command_buffer_proxy_impl.h" | 129 #include "gpu/ipc/client/command_buffer_proxy_impl.h" |
130 #include "gpu/ipc/client/gpu_channel_host.h" | 130 #include "gpu/ipc/client/gpu_channel_host.h" |
131 #include "ipc/ipc_channel_handle.h" | 131 #include "ipc/ipc_channel_handle.h" |
132 #include "ipc/ipc_channel_mojo.h" | 132 #include "ipc/ipc_channel_mojo.h" |
133 #include "ipc/ipc_platform_file.h" | 133 #include "ipc/ipc_platform_file.h" |
134 #include "media/base/media.h" | 134 #include "media/base/media.h" |
| 135 #include "media/media_features.h" |
135 #include "media/renderers/gpu_video_accelerator_factories.h" | 136 #include "media/renderers/gpu_video_accelerator_factories.h" |
136 #include "mojo/common/common_type_converters.h" | 137 #include "mojo/common/common_type_converters.h" |
137 #include "mojo/public/cpp/bindings/strong_binding.h" | 138 #include "mojo/public/cpp/bindings/strong_binding.h" |
138 #include "net/base/net_errors.h" | 139 #include "net/base/net_errors.h" |
139 #include "net/base/port_util.h" | 140 #include "net/base/port_util.h" |
140 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" | 141 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" |
141 #include "net/base/url_util.h" | 142 #include "net/base/url_util.h" |
142 #include "ppapi/features/features.h" | 143 #include "ppapi/features/features.h" |
143 #include "services/service_manager/public/cpp/interface_provider.h" | 144 #include "services/service_manager/public/cpp/interface_provider.h" |
144 #include "services/service_manager/public/cpp/interface_registry.h" | 145 #include "services/service_manager/public/cpp/interface_registry.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 #include "base/mac/mac_util.h" | 179 #include "base/mac/mac_util.h" |
179 #include "content/renderer/theme_helper_mac.h" | 180 #include "content/renderer/theme_helper_mac.h" |
180 #include "content/renderer/webscrollbarbehavior_impl_mac.h" | 181 #include "content/renderer/webscrollbarbehavior_impl_mac.h" |
181 #endif | 182 #endif |
182 | 183 |
183 #if defined(OS_WIN) | 184 #if defined(OS_WIN) |
184 #include <windows.h> | 185 #include <windows.h> |
185 #include <objbase.h> | 186 #include <objbase.h> |
186 #endif | 187 #endif |
187 | 188 |
188 #if defined(ENABLE_WEBRTC) | 189 #if BUILDFLAG(ENABLE_WEBRTC) |
189 #include "content/renderer/media/aec_dump_message_filter.h" | 190 #include "content/renderer/media/aec_dump_message_filter.h" |
190 #include "content/renderer/media/peer_connection_tracker.h" | 191 #include "content/renderer/media/peer_connection_tracker.h" |
191 #include "content/renderer/media/rtc_peer_connection_handler.h" | 192 #include "content/renderer/media/rtc_peer_connection_handler.h" |
192 #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h" | 193 #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h" |
193 #endif | 194 #endif |
194 | 195 |
195 #ifdef ENABLE_VTUNE_JIT_INTERFACE | 196 #ifdef ENABLE_VTUNE_JIT_INTERFACE |
196 #include "v8/src/third_party/vtune/v8-vtune.h" | 197 #include "v8/src/third_party/vtune/v8-vtune.h" |
197 #endif | 198 #endif |
198 | 199 |
(...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
689 blob_message_filter_ = new BlobMessageFilter(GetFileThreadTaskRunner()); | 690 blob_message_filter_ = new BlobMessageFilter(GetFileThreadTaskRunner()); |
690 AddFilter(blob_message_filter_.get()); | 691 AddFilter(blob_message_filter_.get()); |
691 db_message_filter_ = new DBMessageFilter(); | 692 db_message_filter_ = new DBMessageFilter(); |
692 AddFilter(db_message_filter_.get()); | 693 AddFilter(db_message_filter_.get()); |
693 | 694 |
694 vc_manager_.reset(new VideoCaptureImplManager()); | 695 vc_manager_.reset(new VideoCaptureImplManager()); |
695 | 696 |
696 browser_plugin_manager_.reset(new BrowserPluginManager()); | 697 browser_plugin_manager_.reset(new BrowserPluginManager()); |
697 AddObserver(browser_plugin_manager_.get()); | 698 AddObserver(browser_plugin_manager_.get()); |
698 | 699 |
699 #if defined(ENABLE_WEBRTC) | 700 #if BUILDFLAG(ENABLE_WEBRTC) |
700 peer_connection_tracker_.reset(new PeerConnectionTracker()); | 701 peer_connection_tracker_.reset(new PeerConnectionTracker()); |
701 AddObserver(peer_connection_tracker_.get()); | 702 AddObserver(peer_connection_tracker_.get()); |
702 | 703 |
703 p2p_socket_dispatcher_ = new P2PSocketDispatcher(GetIOTaskRunner().get()); | 704 p2p_socket_dispatcher_ = new P2PSocketDispatcher(GetIOTaskRunner().get()); |
704 AddFilter(p2p_socket_dispatcher_.get()); | 705 AddFilter(p2p_socket_dispatcher_.get()); |
705 | 706 |
706 peer_connection_factory_.reset( | 707 peer_connection_factory_.reset( |
707 new PeerConnectionDependencyFactory(p2p_socket_dispatcher_.get())); | 708 new PeerConnectionDependencyFactory(p2p_socket_dispatcher_.get())); |
708 | 709 |
709 aec_dump_message_filter_ = new AecDumpMessageFilter( | 710 aec_dump_message_filter_ = new AecDumpMessageFilter( |
710 GetIOTaskRunner(), message_loop()->task_runner()); | 711 GetIOTaskRunner(), message_loop()->task_runner()); |
711 | 712 |
712 AddFilter(aec_dump_message_filter_.get()); | 713 AddFilter(aec_dump_message_filter_.get()); |
713 | 714 |
714 #endif // defined(ENABLE_WEBRTC) | 715 #endif // BUILDFLAG(ENABLE_WEBRTC) |
715 | 716 |
716 audio_input_message_filter_ = new AudioInputMessageFilter(GetIOTaskRunner()); | 717 audio_input_message_filter_ = new AudioInputMessageFilter(GetIOTaskRunner()); |
717 AddFilter(audio_input_message_filter_.get()); | 718 AddFilter(audio_input_message_filter_.get()); |
718 | 719 |
719 audio_message_filter_ = new AudioMessageFilter(GetIOTaskRunner()); | 720 audio_message_filter_ = new AudioMessageFilter(GetIOTaskRunner()); |
720 AddFilter(audio_message_filter_.get()); | 721 AddFilter(audio_message_filter_.get()); |
721 | 722 |
722 midi_message_filter_ = new MidiMessageFilter(GetIOTaskRunner()); | 723 midi_message_filter_ = new MidiMessageFilter(GetIOTaskRunner()); |
723 AddFilter(midi_message_filter_.get()); | 724 AddFilter(midi_message_filter_.get()); |
724 | 725 |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
927 | 928 |
928 // Shutdown in reverse of the initialization order. | 929 // Shutdown in reverse of the initialization order. |
929 if (devtools_agent_message_filter_.get()) { | 930 if (devtools_agent_message_filter_.get()) { |
930 RemoveFilter(devtools_agent_message_filter_.get()); | 931 RemoveFilter(devtools_agent_message_filter_.get()); |
931 devtools_agent_message_filter_ = nullptr; | 932 devtools_agent_message_filter_ = nullptr; |
932 } | 933 } |
933 | 934 |
934 RemoveFilter(audio_input_message_filter_.get()); | 935 RemoveFilter(audio_input_message_filter_.get()); |
935 audio_input_message_filter_ = nullptr; | 936 audio_input_message_filter_ = nullptr; |
936 | 937 |
937 #if defined(ENABLE_WEBRTC) | 938 #if BUILDFLAG(ENABLE_WEBRTC) |
938 RTCPeerConnectionHandler::DestructAllHandlers(); | 939 RTCPeerConnectionHandler::DestructAllHandlers(); |
939 // |peer_connection_factory_| cannot be deleted until after the main message | 940 // |peer_connection_factory_| cannot be deleted until after the main message |
940 // loop has been destroyed. This is because there may be pending tasks that | 941 // loop has been destroyed. This is because there may be pending tasks that |
941 // hold on to objects produced by the PC factory that depend on threads owned | 942 // hold on to objects produced by the PC factory that depend on threads owned |
942 // by the PC factory. Once those tasks have been freed, the factory can be | 943 // by the PC factory. Once those tasks have been freed, the factory can be |
943 // deleted. | 944 // deleted. |
944 #endif | 945 #endif |
945 vc_manager_.reset(); | 946 vc_manager_.reset(); |
946 | 947 |
947 RemoveFilter(db_message_filter_.get()); | 948 RemoveFilter(db_message_filter_.get()); |
(...skipping 1122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2070 std::unique_ptr<cc::SwapPromise> | 2071 std::unique_ptr<cc::SwapPromise> |
2071 RenderThreadImpl::RequestCopyOfOutputForLayoutTest( | 2072 RenderThreadImpl::RequestCopyOfOutputForLayoutTest( |
2072 int32_t routing_id, | 2073 int32_t routing_id, |
2073 std::unique_ptr<cc::CopyOutputRequest> request) { | 2074 std::unique_ptr<cc::CopyOutputRequest> request) { |
2074 DCHECK(layout_test_deps_); | 2075 DCHECK(layout_test_deps_); |
2075 return layout_test_deps_->RequestCopyOfOutput(routing_id, std::move(request)); | 2076 return layout_test_deps_->RequestCopyOfOutput(routing_id, std::move(request)); |
2076 } | 2077 } |
2077 | 2078 |
2078 blink::WebMediaStreamCenter* RenderThreadImpl::CreateMediaStreamCenter( | 2079 blink::WebMediaStreamCenter* RenderThreadImpl::CreateMediaStreamCenter( |
2079 blink::WebMediaStreamCenterClient* client) { | 2080 blink::WebMediaStreamCenterClient* client) { |
2080 #if defined(ENABLE_WEBRTC) | 2081 #if BUILDFLAG(ENABLE_WEBRTC) |
2081 if (!media_stream_center_) { | 2082 if (!media_stream_center_) { |
2082 media_stream_center_ = GetContentClient()->renderer() | 2083 media_stream_center_ = GetContentClient()->renderer() |
2083 ->OverrideCreateWebMediaStreamCenter(client); | 2084 ->OverrideCreateWebMediaStreamCenter(client); |
2084 if (!media_stream_center_) { | 2085 if (!media_stream_center_) { |
2085 std::unique_ptr<MediaStreamCenter> media_stream_center( | 2086 std::unique_ptr<MediaStreamCenter> media_stream_center( |
2086 new MediaStreamCenter(client, GetPeerConnectionDependencyFactory())); | 2087 new MediaStreamCenter(client, GetPeerConnectionDependencyFactory())); |
2087 media_stream_center_ = media_stream_center.release(); | 2088 media_stream_center_ = media_stream_center.release(); |
2088 } | 2089 } |
2089 } | 2090 } |
2090 #endif | 2091 #endif |
2091 return media_stream_center_; | 2092 return media_stream_center_; |
2092 } | 2093 } |
2093 | 2094 |
2094 #if defined(ENABLE_WEBRTC) | 2095 #if BUILDFLAG(ENABLE_WEBRTC) |
2095 PeerConnectionDependencyFactory* | 2096 PeerConnectionDependencyFactory* |
2096 RenderThreadImpl::GetPeerConnectionDependencyFactory() { | 2097 RenderThreadImpl::GetPeerConnectionDependencyFactory() { |
2097 return peer_connection_factory_.get(); | 2098 return peer_connection_factory_.get(); |
2098 } | 2099 } |
2099 #endif | 2100 #endif |
2100 | 2101 |
2101 mojom::RenderFrameMessageFilter* | 2102 mojom::RenderFrameMessageFilter* |
2102 RenderThreadImpl::render_frame_message_filter() { | 2103 RenderThreadImpl::render_frame_message_filter() { |
2103 if (!render_frame_message_filter_) | 2104 if (!render_frame_message_filter_) |
2104 GetChannel()->GetRemoteAssociatedInterface(&render_frame_message_filter_); | 2105 GetChannel()->GetRemoteAssociatedInterface(&render_frame_message_filter_); |
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2478 } | 2479 } |
2479 } | 2480 } |
2480 | 2481 |
2481 void RenderThreadImpl::OnRendererInterfaceRequest( | 2482 void RenderThreadImpl::OnRendererInterfaceRequest( |
2482 mojom::RendererAssociatedRequest request) { | 2483 mojom::RendererAssociatedRequest request) { |
2483 DCHECK(!renderer_binding_.is_bound()); | 2484 DCHECK(!renderer_binding_.is_bound()); |
2484 renderer_binding_.Bind(std::move(request)); | 2485 renderer_binding_.Bind(std::move(request)); |
2485 } | 2486 } |
2486 | 2487 |
2487 } // namespace content | 2488 } // namespace content |
OLD | NEW |