Index: chrome/browser/chromeos/arc/arc_service_launcher.cc |
diff --git a/chrome/browser/chromeos/arc/arc_service_launcher.cc b/chrome/browser/chromeos/arc/arc_service_launcher.cc |
index 8445448648c59eb6c8a37b19a1f7a7dd9fc6ef6f..8efa8281bf47ff13257d6a6c4ec0ac9eaf9ecb51 100644 |
--- a/chrome/browser/chromeos/arc/arc_service_launcher.cc |
+++ b/chrome/browser/chromeos/arc/arc_service_launcher.cc |
@@ -4,6 +4,8 @@ |
#include "chrome/browser/chromeos/arc/arc_service_launcher.h" |
+#include <utility> |
+ |
#include "base/logging.h" |
#include "base/memory/ptr_util.h" |
#include "chrome/browser/chromeos/arc/arc_auth_service.h" |
@@ -51,10 +53,14 @@ void ArcServiceLauncher::Initialize() { |
arc_service_manager_->AddService( |
base::MakeUnique<ArcEnterpriseReportingService>( |
arc_service_manager_->arc_bridge_service())); |
- arc_service_manager_->AddService(base::MakeUnique<ArcIntentHelperBridge>( |
+ auto intent_helper = base::MakeUnique<ArcIntentHelperBridge>( |
arc_service_manager_->arc_bridge_service(), |
arc_service_manager_->icon_loader(), |
- arc_service_manager_->activity_resolver())); |
+ arc_service_manager_->activity_resolver()); |
+ // We don't have to remove observer since |
+ // ArcServiceManager always outlives ArcIntentHelperBridge. |
+ intent_helper->AddObserver(arc_service_manager_.get()); |
+ arc_service_manager_->AddService(std::move(intent_helper)); |
arc_service_manager_->AddService(base::MakeUnique<ArcPolicyBridge>( |
arc_service_manager_->arc_bridge_service())); |
arc_service_manager_->AddService(base::MakeUnique<ArcPrintService>( |