| 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 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 #include "content/renderer/media/peer_connection_tracker.h" | 194 #include "content/renderer/media/peer_connection_tracker.h" |
| 195 #include "content/renderer/media/rtc_peer_connection_handler.h" | 195 #include "content/renderer/media/rtc_peer_connection_handler.h" |
| 196 #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h" | 196 #include "content/renderer/media/webrtc/peer_connection_dependency_factory.h" |
| 197 #endif | 197 #endif |
| 198 | 198 |
| 199 #ifdef ENABLE_VTUNE_JIT_INTERFACE | 199 #ifdef ENABLE_VTUNE_JIT_INTERFACE |
| 200 #include "v8/src/third_party/vtune/v8-vtune.h" | 200 #include "v8/src/third_party/vtune/v8-vtune.h" |
| 201 #endif | 201 #endif |
| 202 | 202 |
| 203 #if defined(USE_AURA) | 203 #if defined(USE_AURA) |
| 204 #include "content/public/common/mojo_shell_connection.h" | 204 #include "content/public/common/service_manager_connection.h" |
| 205 #include "content/renderer/mus/render_widget_mus_connection.h" | 205 #include "content/renderer/mus/render_widget_mus_connection.h" |
| 206 #include "content/renderer/mus/render_widget_window_tree_client_factory.h" | 206 #include "content/renderer/mus/render_widget_window_tree_client_factory.h" |
| 207 #include "services/ui/public/cpp/gpu_service.h" | 207 #include "services/ui/public/cpp/gpu_service.h" |
| 208 #endif | 208 #endif |
| 209 | 209 |
| 210 #if defined(ENABLE_IPC_FUZZER) | 210 #if defined(ENABLE_IPC_FUZZER) |
| 211 #include "content/common/external_ipc_dumper.h" | 211 #include "content/common/external_ipc_dumper.h" |
| 212 #endif | 212 #endif |
| 213 | 213 |
| 214 using base::ThreadRestrictions; | 214 using base::ThreadRestrictions; |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 mojom::RenderMessageFilter* render_message_filter) { | 593 mojom::RenderMessageFilter* render_message_filter) { |
| 594 g_render_message_filter_for_testing = render_message_filter; | 594 g_render_message_filter_for_testing = render_message_filter; |
| 595 } | 595 } |
| 596 | 596 |
| 597 RenderThreadImpl::RenderThreadImpl( | 597 RenderThreadImpl::RenderThreadImpl( |
| 598 const InProcessChildThreadParams& params, | 598 const InProcessChildThreadParams& params, |
| 599 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, | 599 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, |
| 600 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) | 600 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) |
| 601 : ChildThreadImpl(Options::Builder() | 601 : ChildThreadImpl(Options::Builder() |
| 602 .InBrowserProcess(params) | 602 .InBrowserProcess(params) |
| 603 .AutoStartMojoShellConnection(false) | 603 .AutoStartServiceManagerConnection(false) |
| 604 .ConnectToBrowser(true) | 604 .ConnectToBrowser(true) |
| 605 .Build()), | 605 .Build()), |
| 606 renderer_scheduler_(std::move(scheduler)), | 606 renderer_scheduler_(std::move(scheduler)), |
| 607 time_zone_monitor_binding_(this), | 607 time_zone_monitor_binding_(this), |
| 608 categorized_worker_pool_(new CategorizedWorkerPool()), | 608 categorized_worker_pool_(new CategorizedWorkerPool()), |
| 609 renderer_binding_(this) { | 609 renderer_binding_(this) { |
| 610 Init(resource_task_queue); | 610 Init(resource_task_queue); |
| 611 } | 611 } |
| 612 | 612 |
| 613 // When we run plugins in process, we actually run them on the render thread, | 613 // When we run plugins in process, we actually run them on the render thread, |
| 614 // which means that we need to make the render thread pump UI events. | 614 // which means that we need to make the render thread pump UI events. |
| 615 RenderThreadImpl::RenderThreadImpl( | 615 RenderThreadImpl::RenderThreadImpl( |
| 616 std::unique_ptr<base::MessageLoop> main_message_loop, | 616 std::unique_ptr<base::MessageLoop> main_message_loop, |
| 617 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler) | 617 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler) |
| 618 : ChildThreadImpl(Options::Builder() | 618 : ChildThreadImpl(Options::Builder() |
| 619 .AutoStartMojoShellConnection(false) | 619 .AutoStartServiceManagerConnection(false) |
| 620 .ConnectToBrowser(true) | 620 .ConnectToBrowser(true) |
| 621 .Build()), | 621 .Build()), |
| 622 renderer_scheduler_(std::move(scheduler)), | 622 renderer_scheduler_(std::move(scheduler)), |
| 623 time_zone_monitor_binding_(this), | 623 time_zone_monitor_binding_(this), |
| 624 main_message_loop_(std::move(main_message_loop)), | 624 main_message_loop_(std::move(main_message_loop)), |
| 625 categorized_worker_pool_(new CategorizedWorkerPool()), | 625 categorized_worker_pool_(new CategorizedWorkerPool()), |
| 626 renderer_binding_(this) { | 626 renderer_binding_(this) { |
| 627 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; | 627 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; |
| 628 Init(test_task_counter); | 628 Init(test_task_counter); |
| 629 } | 629 } |
| (...skipping 12 matching lines...) Expand all Loading... |
| 642 #endif | 642 #endif |
| 643 | 643 |
| 644 lazy_tls.Pointer()->Set(this); | 644 lazy_tls.Pointer()->Set(this); |
| 645 | 645 |
| 646 // Register this object as the main thread. | 646 // Register this object as the main thread. |
| 647 ChildProcess::current()->set_main_thread(this); | 647 ChildProcess::current()->set_main_thread(this); |
| 648 | 648 |
| 649 #if defined(USE_AURA) | 649 #if defined(USE_AURA) |
| 650 if (IsRunningInMash()) { | 650 if (IsRunningInMash()) { |
| 651 gpu_service_ = | 651 gpu_service_ = |
| 652 ui::GpuService::Create(GetMojoShellConnection()->GetConnector(), | 652 ui::GpuService::Create(GetServiceManagerConnection()->GetConnector(), |
| 653 ChildProcess::current()->io_task_runner()); | 653 ChildProcess::current()->io_task_runner()); |
| 654 } | 654 } |
| 655 #endif | 655 #endif |
| 656 gpu_memory_buffer_manager_ = | 656 gpu_memory_buffer_manager_ = |
| 657 base::MakeUnique<ChildGpuMemoryBufferManager>(thread_safe_sender()); | 657 base::MakeUnique<ChildGpuMemoryBufferManager>(thread_safe_sender()); |
| 658 | 658 |
| 659 InitializeWebKit(resource_task_queue); | 659 InitializeWebKit(resource_task_queue); |
| 660 | 660 |
| 661 // In single process the single process is all there is. | 661 // In single process the single process is all there is. |
| 662 webkit_shared_timer_suspended_ = false; | 662 webkit_shared_timer_suspended_ = false; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 723 | 723 |
| 724 AddFilter((new IndexedDBMessageFilter(thread_safe_sender()))->GetFilter()); | 724 AddFilter((new IndexedDBMessageFilter(thread_safe_sender()))->GetFilter()); |
| 725 | 725 |
| 726 AddFilter((new CacheStorageMessageFilter(thread_safe_sender()))->GetFilter()); | 726 AddFilter((new CacheStorageMessageFilter(thread_safe_sender()))->GetFilter()); |
| 727 | 727 |
| 728 AddFilter((new ServiceWorkerContextMessageFilter())->GetFilter()); | 728 AddFilter((new ServiceWorkerContextMessageFilter())->GetFilter()); |
| 729 | 729 |
| 730 #if defined(USE_AURA) | 730 #if defined(USE_AURA) |
| 731 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 731 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 732 switches::kUseMusInRenderer)) { | 732 switches::kUseMusInRenderer)) { |
| 733 CreateRenderWidgetWindowTreeClientFactory(GetMojoShellConnection()); | 733 CreateRenderWidgetWindowTreeClientFactory(GetServiceManagerConnection()); |
| 734 } | 734 } |
| 735 #endif | 735 #endif |
| 736 | 736 |
| 737 // Must be called before RenderThreadStarted() below. | 737 // Must be called before RenderThreadStarted() below. |
| 738 StartMojoShellConnection(); | 738 StartServiceManagerConnection(); |
| 739 | 739 |
| 740 GetContentClient()->renderer()->RenderThreadStarted(); | 740 GetContentClient()->renderer()->RenderThreadStarted(); |
| 741 | 741 |
| 742 GetAssociatedInterfaceRegistry()->AddInterface( | 742 GetAssociatedInterfaceRegistry()->AddInterface( |
| 743 base::Bind(&RenderThreadImpl::OnRendererInterfaceRequest, | 743 base::Bind(&RenderThreadImpl::OnRendererInterfaceRequest, |
| 744 base::Unretained(this))); | 744 base::Unretained(this))); |
| 745 | 745 |
| 746 InitSkiaEventTracer(); | 746 InitSkiaEventTracer(); |
| 747 base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( | 747 base::trace_event::MemoryDumpManager::GetInstance()->RegisterDumpProvider( |
| 748 skia::SkiaMemoryDumpProvider::GetInstance(), "Skia", nullptr); | 748 skia::SkiaMemoryDumpProvider::GetInstance(), "Skia", nullptr); |
| (...skipping 1075 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1824 bool use_software, | 1824 bool use_software, |
| 1825 int routing_id, | 1825 int routing_id, |
| 1826 scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue, | 1826 scoped_refptr<FrameSwapMessageQueue> frame_swap_message_queue, |
| 1827 const GURL& url) { | 1827 const GURL& url) { |
| 1828 const base::CommandLine& command_line = | 1828 const base::CommandLine& command_line = |
| 1829 *base::CommandLine::ForCurrentProcess(); | 1829 *base::CommandLine::ForCurrentProcess(); |
| 1830 if (command_line.HasSwitch(switches::kDisableGpuCompositing)) | 1830 if (command_line.HasSwitch(switches::kDisableGpuCompositing)) |
| 1831 use_software = true; | 1831 use_software = true; |
| 1832 | 1832 |
| 1833 #if defined(USE_AURA) | 1833 #if defined(USE_AURA) |
| 1834 if (GetMojoShellConnection() && !use_software && | 1834 if (GetServiceManagerConnection() && !use_software && |
| 1835 command_line.HasSwitch(switches::kUseMusInRenderer)) { | 1835 command_line.HasSwitch(switches::kUseMusInRenderer)) { |
| 1836 RenderWidgetMusConnection* connection = | 1836 RenderWidgetMusConnection* connection = |
| 1837 RenderWidgetMusConnection::GetOrCreate(routing_id); | 1837 RenderWidgetMusConnection::GetOrCreate(routing_id); |
| 1838 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host = | 1838 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host = |
| 1839 EstablishGpuChannelSync(); | 1839 EstablishGpuChannelSync(); |
| 1840 return connection->CreateCompositorFrameSink(std::move(gpu_channel_host)); | 1840 return connection->CreateCompositorFrameSink(std::move(gpu_channel_host)); |
| 1841 } | 1841 } |
| 1842 #endif | 1842 #endif |
| 1843 | 1843 |
| 1844 uint32_t compositor_frame_sink_id = g_next_compositor_frame_sink_id++; | 1844 uint32_t compositor_frame_sink_id = g_next_compositor_frame_sink_id++; |
| (...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2329 } | 2329 } |
| 2330 } | 2330 } |
| 2331 | 2331 |
| 2332 void RenderThreadImpl::OnRendererInterfaceRequest( | 2332 void RenderThreadImpl::OnRendererInterfaceRequest( |
| 2333 mojom::RendererAssociatedRequest request) { | 2333 mojom::RendererAssociatedRequest request) { |
| 2334 DCHECK(!renderer_binding_.is_bound()); | 2334 DCHECK(!renderer_binding_.is_bound()); |
| 2335 renderer_binding_.Bind(std::move(request)); | 2335 renderer_binding_.Bind(std::move(request)); |
| 2336 } | 2336 } |
| 2337 | 2337 |
| 2338 } // namespace content | 2338 } // namespace content |
| OLD | NEW |