| 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 |