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 a398ae9a5d1a36c9d2b413870f8daa7cbdb06777..e0a7c2cc0132e96f4ec99f89bc7f4a25a713c5f9 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/web_contents/web_contents_impl.h" |
#include "content/common/service_manager/service_manager_connection_impl.h" |
#include "content/grit/content_resources.h" |
#include "content/public/browser/browser_thread.h" |
@@ -305,9 +306,16 @@ ServiceManagerContext::ServiceManagerContext() { |
ServiceManagerConnection::GetForProcess()->Start(); |
ServiceInfo device_info; |
+#if defined(OS_ANDROID) |
+ device_info.factory = |
+ base::Bind(&device::CreateDeviceService, |
+ BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE), |
+ base::Bind(&WebContentsImpl::GetNativeViewForWebContents)); |
+#else |
device_info.factory = |
base::Bind(&device::CreateDeviceService, |
BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE)); |
+#endif |
packaged_services_connection_->AddEmbeddedService(device::mojom::kServiceName, |
device_info); |