Chromium Code Reviews| Index: components/arc/arc_service_manager.cc |
| diff --git a/components/arc/arc_service_manager.cc b/components/arc/arc_service_manager.cc |
| index 10388a2aa05008eb927ae61052d97be70c7b5005..bc549940522048c5d3c35691f8966546a5edc33e 100644 |
| --- a/components/arc/arc_service_manager.cc |
| +++ b/components/arc/arc_service_manager.cc |
| @@ -24,14 +24,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; |
|
bartfab (slow)
2016/04/01 10:41:18
Nit: #include "components/arc/arc_bridge_service.h
Polina Bondarenko
2016/04/01 11:05:10
Done.
|
| + |
| } // 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 ArcClipboardBridge(arc_bridge_service()))); |
| AddService( |
| make_scoped_ptr(new ArcCrashCollectorBridge(arc_bridge_service()))); |
| @@ -46,6 +55,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 |
| @@ -74,4 +86,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 |