Index: content/browser/service_manager/service_manager_context.cc |
diff --git a/content/browser/service_manager/service_manager_context.cc b/content/browser/service_manager/service_manager_context.cc |
index 091bfb64f38f9e7dab170e4799f433d294978f13..4e9f5902a24c113b84caf0bb8bb240a3f236eb68 100644 |
--- a/content/browser/service_manager/service_manager_context.cc |
+++ b/content/browser/service_manager/service_manager_context.cc |
@@ -19,6 +19,7 @@ |
#include "content/browser/child_process_launcher.h" |
#include "content/browser/gpu/gpu_process_host.h" |
#include "content/browser/service_manager/merge_dictionary.h" |
+#include "content/browser/wake_lock/wake_lock_context_host.h" |
#include "content/common/service_manager/service_manager_connection_impl.h" |
#include "content/grit/content_resources.h" |
#include "content/public/browser/browser_thread.h" |
@@ -287,10 +288,20 @@ ServiceManagerContext::ServiceManagerContext() { |
ServiceInfo device_info; |
+#if defined(OS_ANDROID) |
+ // See the comments on wake_lock_context_host.h for details on this |
+ // callback. |
+ device_info.factory = |
+ base::Bind(&device::CreateDeviceService, |
+ BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE), |
+ BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), |
+ base::Bind(&WakeLockContextHost::GetNativeViewForContext)); |
+#else |
device_info.factory = |
base::Bind(&device::CreateDeviceService, |
BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE), |
BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)); |
+#endif |
device_info.task_runner = base::ThreadTaskRunnerHandle::Get(); |
packaged_services_connection_->AddEmbeddedService(device::mojom::kServiceName, |
device_info); |