| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/service_manager/service_manager_context.h" | 5 #include "content/browser/service_manager/service_manager_context.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 #include "services/device/device_service.h" | 44 #include "services/device/device_service.h" |
| 45 #include "services/device/public/interfaces/constants.mojom.h" | 45 #include "services/device/public/interfaces/constants.mojom.h" |
| 46 #include "services/service_manager/connect_params.h" | 46 #include "services/service_manager/connect_params.h" |
| 47 #include "services/service_manager/public/cpp/connector.h" | 47 #include "services/service_manager/public/cpp/connector.h" |
| 48 #include "services/service_manager/public/cpp/service.h" | 48 #include "services/service_manager/public/cpp/service.h" |
| 49 #include "services/service_manager/public/interfaces/service.mojom.h" | 49 #include "services/service_manager/public/interfaces/service.mojom.h" |
| 50 #include "services/service_manager/runner/common/client_util.h" | 50 #include "services/service_manager/runner/common/client_util.h" |
| 51 #include "services/service_manager/service_manager.h" | 51 #include "services/service_manager/service_manager.h" |
| 52 #include "services/shape_detection/public/interfaces/constants.mojom.h" | 52 #include "services/shape_detection/public/interfaces/constants.mojom.h" |
| 53 | 53 |
| 54 #if defined(OS_ANDROID) |
| 55 #include "base/android/context_utils.h" |
| 56 #include "base/android/jni_android.h" |
| 57 #include "base/android/scoped_java_ref.h" |
| 58 #include "jni/ContentNfcDelegate_jni.h" |
| 59 #endif |
| 60 |
| 54 namespace content { | 61 namespace content { |
| 55 | 62 |
| 56 namespace { | 63 namespace { |
| 57 | 64 |
| 58 base::LazyInstance<std::unique_ptr<service_manager::Connector>>::Leaky | 65 base::LazyInstance<std::unique_ptr<service_manager::Connector>>::Leaky |
| 59 g_io_thread_connector = LAZY_INSTANCE_INITIALIZER; | 66 g_io_thread_connector = LAZY_INSTANCE_INITIALIZER; |
| 60 | 67 |
| 61 void DestroyConnectorOnIOThread() { g_io_thread_connector.Get().reset(); } | 68 void DestroyConnectorOnIOThread() { g_io_thread_connector.Get().reset(); } |
| 62 | 69 |
| 63 void StartServiceInUtilityProcess( | 70 void StartServiceInUtilityProcess( |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 service_manager::mojom::PIDReceiverPtr pid_receiver; | 291 service_manager::mojom::PIDReceiverPtr pid_receiver; |
| 285 packaged_services_connection_->GetConnector()->StartService( | 292 packaged_services_connection_->GetConnector()->StartService( |
| 286 service_manager::Identity(mojom::kBrowserServiceName, | 293 service_manager::Identity(mojom::kBrowserServiceName, |
| 287 service_manager::mojom::kRootUserID), | 294 service_manager::mojom::kRootUserID), |
| 288 std::move(root_browser_service), mojo::MakeRequest(&pid_receiver)); | 295 std::move(root_browser_service), mojo::MakeRequest(&pid_receiver)); |
| 289 pid_receiver->SetPID(base::GetCurrentProcId()); | 296 pid_receiver->SetPID(base::GetCurrentProcId()); |
| 290 | 297 |
| 291 | 298 |
| 292 ServiceInfo device_info; | 299 ServiceInfo device_info; |
| 293 #if defined(OS_ANDROID) | 300 #if defined(OS_ANDROID) |
| 294 // See the comments on wake_lock_context_host.h for details on this | 301 JNIEnv* env = base::android::AttachCurrentThread(); |
| 295 // callback. | 302 base::android::ScopedJavaGlobalRef<jobject> java_nfc_delegate; |
| 303 java_nfc_delegate.Reset(Java_ContentNfcDelegate_create(env)); |
| 304 DCHECK(!java_nfc_delegate.is_null()); |
| 305 |
| 306 // See the comments on wake_lock_context_host.h and ContentNfcDelegate.java |
| 307 // respectively for comments on those parameters. |
| 296 device_info.factory = | 308 device_info.factory = |
| 297 base::Bind(&device::CreateDeviceService, | 309 base::Bind(&device::CreateDeviceService, |
| 298 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE), | 310 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE), |
| 299 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), | 311 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO), |
| 300 base::Bind(&WakeLockContextHost::GetNativeViewForContext)); | 312 base::Bind(&WakeLockContextHost::GetNativeViewForContext), |
| 313 std::move(java_nfc_delegate)); |
| 301 #else | 314 #else |
| 302 device_info.factory = | 315 device_info.factory = |
| 303 base::Bind(&device::CreateDeviceService, | 316 base::Bind(&device::CreateDeviceService, |
| 304 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE), | 317 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE), |
| 305 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)); | 318 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO)); |
| 306 #endif | 319 #endif |
| 307 device_info.task_runner = base::ThreadTaskRunnerHandle::Get(); | 320 device_info.task_runner = base::ThreadTaskRunnerHandle::Get(); |
| 308 packaged_services_connection_->AddEmbeddedService(device::mojom::kServiceName, | 321 packaged_services_connection_->AddEmbeddedService(device::mojom::kServiceName, |
| 309 device_info); | 322 device_info); |
| 310 | 323 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 389 base::Bind(&DestroyConnectorOnIOThread)); | 402 base::Bind(&DestroyConnectorOnIOThread)); |
| 390 } | 403 } |
| 391 | 404 |
| 392 // static | 405 // static |
| 393 service_manager::Connector* ServiceManagerContext::GetConnectorForIOThread() { | 406 service_manager::Connector* ServiceManagerContext::GetConnectorForIOThread() { |
| 394 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 407 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 395 return g_io_thread_connector.Get().get(); | 408 return g_io_thread_connector.Get().get(); |
| 396 } | 409 } |
| 397 | 410 |
| 398 } // namespace content | 411 } // namespace content |
| OLD | NEW |