| Index: components/arc/arc_service_manager.cc
|
| diff --git a/components/arc/arc_service_manager.cc b/components/arc/arc_service_manager.cc
|
| index 0d982c4c6960b6b5dbad3431a51f05dc010b116d..714895756647fe61531e35d4b9b49eba58e8f893 100644
|
| --- a/components/arc/arc_service_manager.cc
|
| +++ b/components/arc/arc_service_manager.cc
|
| @@ -7,6 +7,7 @@
|
| #include "base/sequenced_task_runner.h"
|
| #include "base/thread_task_runner_handle.h"
|
| #include "components/arc/arc_bridge_bootstrap.h"
|
| +#include "components/arc/arc_bridge_service.h"
|
| #include "components/arc/arc_bridge_service_impl.h"
|
| #include "components/arc/audio/arc_audio_bridge.h"
|
| #include "components/arc/clipboard/arc_clipboard_bridge.h"
|
| @@ -26,14 +27,23 @@ namespace {
|
| // Weak pointer. This class is owned by ChromeBrowserMainPartsChromeos.
|
| ArcServiceManager* g_arc_service_manager = nullptr;
|
|
|
| +// This pointer is owned by ArcServiceManager.
|
| +ArcBridgeService* g_arc_bridge_service_for_testing = nullptr;
|
| +
|
| } // namespace
|
|
|
| -ArcServiceManager::ArcServiceManager()
|
| - : arc_bridge_service_(
|
| - new ArcBridgeServiceImpl(ArcBridgeBootstrap::Create())) {
|
| +ArcServiceManager::ArcServiceManager() {
|
| DCHECK(!g_arc_service_manager);
|
| g_arc_service_manager = this;
|
|
|
| + if (g_arc_bridge_service_for_testing) {
|
| + arc_bridge_service_.reset(g_arc_bridge_service_for_testing);
|
| + g_arc_bridge_service_for_testing = nullptr;
|
| + } else {
|
| + arc_bridge_service_.reset(new ArcBridgeServiceImpl(
|
| + ArcBridgeBootstrap::Create()));
|
| + }
|
| +
|
| AddService(make_scoped_ptr(new ArcAudioBridge(arc_bridge_service())));
|
| AddService(make_scoped_ptr(new ArcClipboardBridge(arc_bridge_service())));
|
| AddService(
|
| @@ -50,6 +60,9 @@ ArcServiceManager::~ArcServiceManager() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| DCHECK(g_arc_service_manager == this);
|
| g_arc_service_manager = nullptr;
|
| + if (g_arc_bridge_service_for_testing) {
|
| + delete g_arc_bridge_service_for_testing;
|
| + }
|
| }
|
|
|
| // static
|
| @@ -78,4 +91,13 @@ void ArcServiceManager::OnPrimaryUserProfilePrepared(
|
| new ArcNotificationManager(arc_bridge_service(), account_id)));
|
| }
|
|
|
| +//static
|
| +void ArcServiceManager::SetArcBridgeServiceForTesting(
|
| + scoped_ptr<ArcBridgeService> arc_bridge_service) {
|
| + if (g_arc_bridge_service_for_testing) {
|
| + delete g_arc_bridge_service_for_testing;
|
| + }
|
| + g_arc_bridge_service_for_testing = arc_bridge_service.release();
|
| +}
|
| +
|
| } // namespace arc
|
|
|