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..e0530e5c281c170eba0f049bcd1cb3f81ffd42df 100644 |
--- a/chrome/browser/chromeos/arc/arc_service_launcher.cc |
+++ b/chrome/browser/chromeos/arc/arc_service_launcher.cc |
@@ -51,10 +51,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>( |