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 581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
592 // In single-process mode used for debugging, we don't pass a renderer client | 592 // In single-process mode used for debugging, we don't pass a renderer client |
593 // ID via command line because RenderThreadImpl lives in the same process as | 593 // ID via command line because RenderThreadImpl lives in the same process as |
594 // the browser | 594 // the browser |
595 RenderThreadImpl::RenderThreadImpl( | 595 RenderThreadImpl::RenderThreadImpl( |
596 const InProcessChildThreadParams& params, | 596 const InProcessChildThreadParams& params, |
597 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, | 597 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler, |
598 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) | 598 scoped_refptr<base::SingleThreadTaskRunner>& resource_task_queue) |
599 : ChildThreadImpl(Options::Builder() | 599 : ChildThreadImpl(Options::Builder() |
600 .InBrowserProcess(params) | 600 .InBrowserProcess(params) |
601 .AutoStartServiceManagerConnection(false) | 601 .AutoStartServiceManagerConnection(false) |
| 602 .InitDiscardableMemory(true) |
602 .ConnectToBrowser(true) | 603 .ConnectToBrowser(true) |
603 .Build()), | 604 .Build()), |
604 renderer_scheduler_(std::move(scheduler)), | 605 renderer_scheduler_(std::move(scheduler)), |
605 categorized_worker_pool_(new CategorizedWorkerPool()), | 606 categorized_worker_pool_(new CategorizedWorkerPool()), |
606 renderer_binding_(this), | 607 renderer_binding_(this), |
607 client_id_(1) { | 608 client_id_(1) { |
608 Init(resource_task_queue); | 609 Init(resource_task_queue); |
609 } | 610 } |
610 | 611 |
611 // When we run plugins in process, we actually run them on the render thread, | 612 // When we run plugins in process, we actually run them on the render thread, |
612 // which means that we need to make the render thread pump UI events. | 613 // which means that we need to make the render thread pump UI events. |
613 RenderThreadImpl::RenderThreadImpl( | 614 RenderThreadImpl::RenderThreadImpl( |
614 std::unique_ptr<base::MessageLoop> main_message_loop, | 615 std::unique_ptr<base::MessageLoop> main_message_loop, |
615 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler) | 616 std::unique_ptr<blink::scheduler::RendererScheduler> scheduler) |
616 : ChildThreadImpl(Options::Builder() | 617 : ChildThreadImpl(Options::Builder() |
617 .AutoStartServiceManagerConnection(false) | 618 .AutoStartServiceManagerConnection(false) |
618 .ConnectToBrowser(true) | 619 .ConnectToBrowser(true) |
| 620 .InitDiscardableMemory(true) |
619 .Build()), | 621 .Build()), |
620 renderer_scheduler_(std::move(scheduler)), | 622 renderer_scheduler_(std::move(scheduler)), |
621 main_message_loop_(std::move(main_message_loop)), | 623 main_message_loop_(std::move(main_message_loop)), |
622 categorized_worker_pool_(new CategorizedWorkerPool()), | 624 categorized_worker_pool_(new CategorizedWorkerPool()), |
623 renderer_binding_(this) { | 625 renderer_binding_(this) { |
624 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; | 626 scoped_refptr<base::SingleThreadTaskRunner> test_task_counter; |
625 DCHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( | 627 DCHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( |
626 switches::kRendererClientId)); | 628 switches::kRendererClientId)); |
627 base::StringToInt(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( | 629 base::StringToInt(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( |
628 switches::kRendererClientId), | 630 switches::kRendererClientId), |
(...skipping 1856 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2485 } | 2487 } |
2486 } | 2488 } |
2487 | 2489 |
2488 void RenderThreadImpl::OnRendererInterfaceRequest( | 2490 void RenderThreadImpl::OnRendererInterfaceRequest( |
2489 mojom::RendererAssociatedRequest request) { | 2491 mojom::RendererAssociatedRequest request) { |
2490 DCHECK(!renderer_binding_.is_bound()); | 2492 DCHECK(!renderer_binding_.is_bound()); |
2491 renderer_binding_.Bind(std::move(request)); | 2493 renderer_binding_.Bind(std::move(request)); |
2492 } | 2494 } |
2493 | 2495 |
2494 } // namespace content | 2496 } // namespace content |
OLD | NEW |