Index: content/gpu/gpu_child_thread.cc |
diff --git a/content/gpu/gpu_child_thread.cc b/content/gpu/gpu_child_thread.cc |
index 1fe92720338bc819404b810e80f00487f9fde67a..2c0d2b2c417667866289b2c427b3831bd4d2ed81 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" |
@@ -189,6 +190,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()| |
+ // will be destroyed before GpuChildThread is destructed. |
+ service_registry()->AddService(base::Bind( |
+ &GpuChildThread::BindProcessControlRequest, base::Unretained(this))); |
} |
bool GpuChildThread::Send(IPC::Message* msg) { |
@@ -381,4 +388,11 @@ void GpuChildThread::OnGpuSwitched() { |
ui::GpuSwitchingManager::GetInstance()->NotifyGpuSwitched(); |
} |
+void GpuChildThread::BindProcessControlRequest( |
+ mojo::InterfaceRequest<ProcessControl> request) { |
+ DVLOG(1) << "GPU: Binding ProcessControl request"; |
+ DCHECK(process_control_); |
+ process_control_bindings_.AddBinding(process_control_.get(), request.Pass()); |
+} |
+ |
} // namespace content |