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 57fad6e0e94a562cbff6eab7ba4306143683b6db..4d98c99e21bfe28de5e6694adb4364df36bf43f6 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" |
@@ -283,10 +284,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); |