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