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 592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
603 // In single-process mode used for debugging, we don't pass a renderer client | 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 | 604 // ID via command line because RenderThreadImpl lives in the same process as |
605 // the browser | 605 // the browser |
606 RenderThreadImpl::RenderThreadImpl( | 606 RenderThreadImpl::RenderThreadImpl( |
607 const InProcessChildThreadParams& params, | 607 const InProcessChildThreadParams& params, |
608 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, | 608 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, |
609 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) | 609 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) |
610 : ChildThreadImpl(Options::Builder() | 610 : ChildThreadImpl(Options::Builder() |
611 .InBrowserProcess(params) | 611 .InBrowserProcess(params) |
612 .AutoStartServiceManagerConnection(false) | 612 .AutoStartServiceManagerConnection(false) |
| 613 .InitDiscardableMemory(true) |
613 .ConnectToBrowser(true) | 614 .ConnectToBrowser(true) |
614 .Build()), | 615 .Build()), |
615 renderer_scheduler_(std::move(scheduler)), | 616 renderer_scheduler_(std::move(scheduler)), |
616 time_zone_monitor_binding_(this), | 617 time_zone_monitor_binding_(this), |
617 categorized_worker_pool_(new CategorizedWorkerPool()), | 618 categorized_worker_pool_(new CategorizedWorkerPool()), |
618 renderer_binding_(this), | 619 renderer_binding_(this), |
619 client_id_(1) { | 620 client_id_(1) { |
620 Init(resource_task_queue); | 621 Init(resource_task_queue); |
621 } | 622 } |
622 | 623 |
623 // When we run plugins in process, we actually run them on the render thread, | 624 // When we run plugins in process, we actually run them on the render thread, |
624 // which means that we need to make the render thread pump UI events. | 625 // which means that we need to make the render thread pump UI events. |
625 RenderThreadImpl::RenderThreadImpl( | 626 RenderThreadImpl::RenderThreadImpl( |
626 std::unique_ptr<base::MessageLoop> main_message_loop, | 627 std::unique_ptr<base::MessageLoop> main_message_loop, |
627 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler) | 628 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler) |
628 : ChildThreadImpl(Options::Builder() | 629 : ChildThreadImpl(Options::Builder() |
629 .AutoStartServiceManagerConnection(false) | 630 .AutoStartServiceManagerConnection(false) |
630 .ConnectToBrowser(true) | 631 .ConnectToBrowser(true) |
| 632 .InitDiscardableMemory(true) |
631 .Build()), | 633 .Build()), |
632 renderer_scheduler_(std::move(scheduler)), | 634 renderer_scheduler_(std::move(scheduler)), |
633 time_zone_monitor_binding_(this), | 635 time_zone_monitor_binding_(this), |
634 main_message_loop_(std::move(main_message_loop)), | 636 main_message_loop_(std::move(main_message_loop)), |
635 categorized_worker_pool_(new CategorizedWorkerPool()), | 637 categorized_worker_pool_(new CategorizedWorkerPool()), |
636 renderer_binding_(this) { | 638 renderer_binding_(this) { |
637 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; | 639 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; |
638 DCHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( | 640 DCHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( |
639 switches::kRendererClientId)); | 641 switches::kRendererClientId)); |
640 base::StringToInt(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( | 642 base::StringToInt(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
(...skipping 1873 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2514 } | 2516 } |
2515 } | 2517 } |
2516 | 2518 |
2517 void RenderThreadImpl::OnRendererInterfaceRequest( | 2519 void RenderThreadImpl::OnRendererInterfaceRequest( |
2518 mojom::RendererAssociatedRequest request) { | 2520 mojom::RendererAssociatedRequest request) { |
2519 DCHECK(!renderer_binding_.is_bound()); | 2521 DCHECK(!renderer_binding_.is_bound()); |
2520 renderer_binding_.Bind(std::move(request)); | 2522 renderer_binding_.Bind(std::move(request)); |
2521 } | 2523 } |
2522 | 2524 |
2523 } // namespace content | 2525 } // namespace content |
OLD | NEW |