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 02c4d295b25a89f1eec654f7e0dd81a6821fa0c2..af50b1aefb23c3b74277b7d3b4c1ce583a3f6c7d 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" |
@@ -97,9 +99,13 @@ void ArcServiceLauncher::Initialize() { |
base::MakeUnique<ArcDownloadsWatcherService>(arc_bridge_service)); |
arc_service_manager_->AddService( |
base::MakeUnique<ArcEnterpriseReportingService>(arc_bridge_service)); |
- arc_service_manager_->AddService(base::MakeUnique<ArcIntentHelperBridge>( |
+ auto intent_helper = base::MakeUnique<ArcIntentHelperBridge>( |
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<ArcImeService>(arc_bridge_service)); |
arc_service_manager_->AddService( |