| 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 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 DCHECK(current()); | 593 DCHECK(current()); |
| 594 return current()->render_message_filter(); | 594 return current()->render_message_filter(); |
| 595 } | 595 } |
| 596 | 596 |
| 597 // static | 597 // static |
| 598 void RenderThreadImpl::SetRenderMessageFilterForTesting( | 598 void RenderThreadImpl::SetRenderMessageFilterForTesting( |
| 599 mojom::RenderMessageFilter* render_message_filter) { | 599 mojom::RenderMessageFilter* render_message_filter) { |
| 600 g_render_message_filter_for_testing = render_message_filter; | 600 g_render_message_filter_for_testing = render_message_filter; |
| 601 } | 601 } |
| 602 | 602 |
| 603 // In single-process mode used for debugging, we don't pass a renderer client |
| 604 // ID via command line because RenderThreadImpl lives in the same process as |
| 605 // the browser |
| 603 RenderThreadImpl::RenderThreadImpl( | 606 RenderThreadImpl::RenderThreadImpl( |
| 604 const InProcessChildThreadParams& params, | 607 const InProcessChildThreadParams& params, |
| 605 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, | 608 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, |
| 606 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) | 609 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) |
| 607 : ChildThreadImpl(Options::Builder() | 610 : ChildThreadImpl(Options::Builder() |
| 608 .InBrowserProcess(params) | 611 .InBrowserProcess(params) |
| 609 .AutoStartServiceManagerConnection(false) | 612 .AutoStartServiceManagerConnection(false) |
| 610 .ConnectToBrowser(true) | 613 .ConnectToBrowser(true) |
| 611 .Build()), | 614 .Build()), |
| 612 renderer_scheduler_(std::move(scheduler)), | 615 renderer_scheduler_(std::move(scheduler)), |
| 613 time_zone_monitor_binding_(this), | 616 time_zone_monitor_binding_(this), |
| 614 categorized_worker_pool_(new CategorizedWorkerPool()), | 617 categorized_worker_pool_(new CategorizedWorkerPool()), |
| 615 renderer_binding_(this) { | 618 renderer_binding_(this), |
| 619 client_id_(1) { |
| 616 Init(resource_task_queue); | 620 Init(resource_task_queue); |
| 617 } | 621 } |
| 618 | 622 |
| 619 // When we run plugins in process, we actually run them on the render thread, | 623 // When we run plugins in process, we actually run them on the render thread, |
| 620 // which means that we need to make the render thread pump UI events. | 624 // which means that we need to make the render thread pump UI events. |
| 621 RenderThreadImpl::RenderThreadImpl( | 625 RenderThreadImpl::RenderThreadImpl( |
| 622 std::unique_ptr<base::MessageLoop> main_message_loop, | 626 std::unique_ptr<base::MessageLoop> main_message_loop, |
| 623 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler) | 627 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler) |
| 624 : ChildThreadImpl(Options::Builder() | 628 : ChildThreadImpl(Options::Builder() |
| 625 .AutoStartServiceManagerConnection(false) | 629 .AutoStartServiceManagerConnection(false) |
| 626 .ConnectToBrowser(true) | 630 .ConnectToBrowser(true) |
| 627 .Build()), | 631 .Build()), |
| 628 renderer_scheduler_(std::move(scheduler)), | 632 renderer_scheduler_(std::move(scheduler)), |
| 629 time_zone_monitor_binding_(this), | 633 time_zone_monitor_binding_(this), |
| 630 main_message_loop_(std::move(main_message_loop)), | 634 main_message_loop_(std::move(main_message_loop)), |
| 631 categorized_worker_pool_(new CategorizedWorkerPool()), | 635 categorized_worker_pool_(new CategorizedWorkerPool()), |
| 632 renderer_binding_(this) { | 636 renderer_binding_(this) { |
| 633 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; | 637 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; |
| 638 DCHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 639 switches::kRendererClientId)); |
| 640 base::StringToInt(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
| 641 switches::kRendererClientId), |
| 642 &client_id_); |
| 634 Init(test_task_counter); | 643 Init(test_task_counter); |
| 635 } | 644 } |
| 636 | 645 |
| 637 void RenderThreadImpl::Init( | 646 void RenderThreadImpl::Init( |
| 638 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) { | 647 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) { |
| 639 TRACE_EVENT0("startup", "RenderThreadImpl::Init"); | 648 TRACE_EVENT0("startup", "RenderThreadImpl::Init"); |
| 640 | 649 |
| 641 base::trace_event::TraceLog::GetInstance()->SetThreadSortIndex( | 650 base::trace_event::TraceLog::GetInstance()->SetThreadSortIndex( |
| 642 base::PlatformThread::CurrentId(), | 651 base::PlatformThread::CurrentId(), |
| 643 kTraceEventRendererMainThreadSortIndex); | 652 kTraceEventRendererMainThreadSortIndex); |
| (...skipping 933 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1577 audio_renderer_mixer_manager_ = AudioRendererMixerManager::Create(); | 1586 audio_renderer_mixer_manager_ = AudioRendererMixerManager::Create(); |
| 1578 } | 1587 } |
| 1579 | 1588 |
| 1580 return audio_renderer_mixer_manager_.get(); | 1589 return audio_renderer_mixer_manager_.get(); |
| 1581 } | 1590 } |
| 1582 | 1591 |
| 1583 base::WaitableEvent* RenderThreadImpl::GetShutdownEvent() { | 1592 base::WaitableEvent* RenderThreadImpl::GetShutdownEvent() { |
| 1584 return ChildProcess::current()->GetShutDownEvent(); | 1593 return ChildProcess::current()->GetShutDownEvent(); |
| 1585 } | 1594 } |
| 1586 | 1595 |
| 1596 int32_t RenderThreadImpl::GetClientId() { |
| 1597 return client_id_; |
| 1598 } |
| 1599 |
| 1587 void RenderThreadImpl::OnAssociatedInterfaceRequest( | 1600 void RenderThreadImpl::OnAssociatedInterfaceRequest( |
| 1588 const std::string& name, | 1601 const std::string& name, |
| 1589 mojo::ScopedInterfaceEndpointHandle handle) { | 1602 mojo::ScopedInterfaceEndpointHandle handle) { |
| 1590 associated_interfaces_.BindRequest(name, std::move(handle)); | 1603 associated_interfaces_.BindRequest(name, std::move(handle)); |
| 1591 } | 1604 } |
| 1592 | 1605 |
| 1593 bool RenderThreadImpl::IsGpuRasterizationForced() { | 1606 bool RenderThreadImpl::IsGpuRasterizationForced() { |
| 1594 return is_gpu_rasterization_forced_; | 1607 return is_gpu_rasterization_forced_; |
| 1595 } | 1608 } |
| 1596 | 1609 |
| (...skipping 904 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2501 } | 2514 } |
| 2502 } | 2515 } |
| 2503 | 2516 |
| 2504 void RenderThreadImpl::OnRendererInterfaceRequest( | 2517 void RenderThreadImpl::OnRendererInterfaceRequest( |
| 2505 mojom::RendererAssociatedRequest request) { | 2518 mojom::RendererAssociatedRequest request) { |
| 2506 DCHECK(!renderer_binding_.is_bound()); | 2519 DCHECK(!renderer_binding_.is_bound()); |
| 2507 renderer_binding_.Bind(std::move(request)); | 2520 renderer_binding_.Bind(std::move(request)); |
| 2508 } | 2521 } |
| 2509 | 2522 |
| 2510 } // namespace content | 2523 } // namespace content |
| OLD | NEW |