OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 // Represents the browser side of the browser <--> renderer communication | 5 // Represents the browser side of the browser <--> renderer communication |
6 // channel. There will be one RenderProcessHost per renderer process. | 6 // channel. There will be one RenderProcessHost per renderer process. |
7 | 7 |
8 #include "content/browser/renderer_host/render_process_host_impl.h" | 8 #include "content/browser/renderer_host/render_process_host_impl.h" |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 #include "content/public/common/content_features.h" | 154 #include "content/public/common/content_features.h" |
155 #include "content/public/common/content_switches.h" | 155 #include "content/public/common/content_switches.h" |
156 #include "content/public/common/mojo_channel_switches.h" | 156 #include "content/public/common/mojo_channel_switches.h" |
157 #include "content/public/common/process_type.h" | 157 #include "content/public/common/process_type.h" |
158 #include "content/public/common/resource_type.h" | 158 #include "content/public/common/resource_type.h" |
159 #include "content/public/common/result_codes.h" | 159 #include "content/public/common/result_codes.h" |
160 #include "content/public/common/sandboxed_process_launcher_delegate.h" | 160 #include "content/public/common/sandboxed_process_launcher_delegate.h" |
161 #include "content/public/common/service_names.h" | 161 #include "content/public/common/service_names.h" |
162 #include "content/public/common/url_constants.h" | 162 #include "content/public/common/url_constants.h" |
163 #include "device/battery/battery_monitor_impl.h" | 163 #include "device/battery/battery_monitor_impl.h" |
| 164 #include "device/power_monitor/public/interfaces/power_monitor.mojom.h" |
164 #include "device/time_zone_monitor/time_zone_monitor.h" | 165 #include "device/time_zone_monitor/time_zone_monitor.h" |
165 #include "gpu/GLES2/gl2extchromium.h" | 166 #include "gpu/GLES2/gl2extchromium.h" |
166 #include "gpu/command_buffer/client/gpu_switches.h" | 167 #include "gpu/command_buffer/client/gpu_switches.h" |
167 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 168 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
168 #include "gpu/command_buffer/service/gpu_switches.h" | 169 #include "gpu/command_buffer/service/gpu_switches.h" |
169 #include "ipc/attachment_broker.h" | 170 #include "ipc/attachment_broker.h" |
170 #include "ipc/attachment_broker_privileged.h" | 171 #include "ipc/attachment_broker_privileged.h" |
171 #include "ipc/ipc.mojom.h" | 172 #include "ipc/ipc.mojom.h" |
172 #include "ipc/ipc_channel.h" | 173 #include "ipc/ipc_channel.h" |
173 #include "ipc/ipc_channel_mojo.h" | 174 #include "ipc/ipc_channel_mojo.h" |
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
677 is_process_backgrounded_(false), | 678 is_process_backgrounded_(false), |
678 id_(ChildProcessHostImpl::GenerateChildProcessUniqueId()), | 679 id_(ChildProcessHostImpl::GenerateChildProcessUniqueId()), |
679 browser_context_(browser_context), | 680 browser_context_(browser_context), |
680 storage_partition_impl_(storage_partition_impl), | 681 storage_partition_impl_(storage_partition_impl), |
681 sudden_termination_allowed_(true), | 682 sudden_termination_allowed_(true), |
682 ignore_input_events_(false), | 683 ignore_input_events_(false), |
683 is_for_guests_only_(is_for_guests_only), | 684 is_for_guests_only_(is_for_guests_only), |
684 gpu_observer_registered_(false), | 685 gpu_observer_registered_(false), |
685 delayed_cleanup_needed_(false), | 686 delayed_cleanup_needed_(false), |
686 within_process_died_observer_(false), | 687 within_process_died_observer_(false), |
687 power_monitor_broadcaster_(this), | |
688 #if defined(ENABLE_WEBRTC) | 688 #if defined(ENABLE_WEBRTC) |
689 webrtc_eventlog_host_(id_), | 689 webrtc_eventlog_host_(id_), |
690 #endif | 690 #endif |
691 max_worker_count_(0), | 691 max_worker_count_(0), |
692 permission_service_context_(new PermissionServiceContext(this)), | 692 permission_service_context_(new PermissionServiceContext(this)), |
693 channel_connected_(false), | 693 channel_connected_(false), |
694 sent_render_process_ready_(false), | 694 sent_render_process_ready_(false), |
695 #if defined(OS_ANDROID) | 695 #if defined(OS_ANDROID) |
696 never_signaled_(base::WaitableEvent::ResetPolicy::MANUAL, | 696 never_signaled_(base::WaitableEvent::ResetPolicy::MANUAL, |
697 base::WaitableEvent::InitialState::NOT_SIGNALED), | 697 base::WaitableEvent::InitialState::NOT_SIGNALED), |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
914 channel_->Pause(); | 914 channel_->Pause(); |
915 | 915 |
916 fast_shutdown_started_ = false; | 916 fast_shutdown_started_ = false; |
917 } | 917 } |
918 | 918 |
919 if (!gpu_observer_registered_) { | 919 if (!gpu_observer_registered_) { |
920 gpu_observer_registered_ = true; | 920 gpu_observer_registered_ = true; |
921 ui::GpuSwitchingManager::GetInstance()->AddObserver(this); | 921 ui::GpuSwitchingManager::GetInstance()->AddObserver(this); |
922 } | 922 } |
923 | 923 |
924 power_monitor_broadcaster_.Init(); | 924 device::mojom::PowerMonitorClientPtr power_monitor_client; |
| 925 GetRemoteInterfaces()->GetInterface(mojo::GetProxy(&power_monitor_client)); |
| 926 power_monitor_broadcaster_.Init(power_monitor_client); |
925 | 927 |
926 is_initialized_ = true; | 928 is_initialized_ = true; |
927 init_time_ = base::TimeTicks::Now(); | 929 init_time_ = base::TimeTicks::Now(); |
928 return true; | 930 return true; |
929 } | 931 } |
930 | 932 |
931 void RenderProcessHostImpl::InitializeChannelProxy() { | 933 void RenderProcessHostImpl::InitializeChannelProxy() { |
932 // Generate a token used to identify the new child process. | 934 // Generate a token used to identify the new child process. |
933 child_token_ = mojo::edk::GenerateRandomToken(); | 935 child_token_ = mojo::edk::GenerateRandomToken(); |
934 | 936 |
(...skipping 2065 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3000 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; | 3002 LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; |
3001 | 3003 |
3002 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. Alias | 3004 // The ReceivedBadMessage call below will trigger a DumpWithoutCrashing. Alias |
3003 // enough information here so that we can determine what the bad message was. | 3005 // enough information here so that we can determine what the bad message was. |
3004 base::debug::Alias(&error); | 3006 base::debug::Alias(&error); |
3005 bad_message::ReceivedBadMessage(render_process_id, | 3007 bad_message::ReceivedBadMessage(render_process_id, |
3006 bad_message::RPH_MOJO_PROCESS_ERROR); | 3008 bad_message::RPH_MOJO_PROCESS_ERROR); |
3007 } | 3009 } |
3008 | 3010 |
3009 } // namespace content | 3011 } // namespace content |
OLD | NEW |