Index: content/gpu/gpu_child_thread.cc |
diff --git a/content/gpu/gpu_child_thread.cc b/content/gpu/gpu_child_thread.cc |
index e40928cd82a696d4dc88f320beac678296625d1a..951d41aaf2e2e74cd90f45a0eb510139795c5586 100644 |
--- a/content/gpu/gpu_child_thread.cc |
+++ b/content/gpu/gpu_child_thread.cc |
@@ -12,6 +12,7 @@ |
#include "content/child/thread_safe_sender.h" |
#include "content/common/gpu/gpu_memory_buffer_factory.h" |
#include "content/common/gpu/gpu_messages.h" |
+#include "content/gpu/gpu_process_control_impl.h" |
#include "content/gpu/gpu_watchdog_thread.h" |
#include "content/public/common/content_client.h" |
#include "content/public/common/content_switches.h" |
@@ -182,6 +183,12 @@ void GpuChildThread::Shutdown() { |
void GpuChildThread::Init(const base::Time& process_start_time) { |
process_start_time_ = process_start_time; |
+ |
+ process_control_.reset(new GpuProcessControlImpl()); |
+ // Use of base::Unretained(this) is safe here because |service_registry()| |
+ // and the message loop will be destroyed before GpuChildThread is destructed. |
piman
2015/10/08 22:37:02
To be clear, does that mean BindProcessControlRequ
xhwang
2015/10/09 23:36:35
Sorry I didn't make it clear. BindProcessControlRe
|
+ service_registry()->AddService(base::Bind( |
+ &GpuChildThread::BindProcessControlRequest, base::Unretained(this))); |
} |
bool GpuChildThread::Send(IPC::Message* msg) { |
@@ -374,4 +381,10 @@ void GpuChildThread::OnGpuSwitched() { |
ui::GpuSwitchingManager::GetInstance()->NotifyGpuSwitched(); |
} |
+void GpuChildThread::BindProcessControlRequest( |
+ mojo::InterfaceRequest<ProcessControl> request) { |
+ DCHECK(process_control_); |
+ process_control_bindings_.AddBinding(process_control_.get(), request.Pass()); |
+} |
+ |
} // namespace content |