Index: chrome/browser/chromeos/extensions/file_manager/event_router.cc |
diff --git a/chrome/browser/chromeos/extensions/file_manager/event_router.cc b/chrome/browser/chromeos/extensions/file_manager/event_router.cc |
index 2b78461c5a07ff58cbacdfa590ab0b40537a8eae..97e52a9295ef56a750d77527ddba1c85676b9742 100644 |
--- a/chrome/browser/chromeos/extensions/file_manager/event_router.cc |
+++ b/chrome/browser/chromeos/extensions/file_manager/event_router.cc |
@@ -397,11 +397,22 @@ EventRouter::EventRouter(Profile* profile) |
ObserveEvents(); |
} |
-EventRouter::~EventRouter() { |
+EventRouter::~EventRouter() = default; |
+ |
+void EventRouter::OnAppsUpdated() { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ BroadcastEvent(profile_, |
+ extensions::events::FILE_MANAGER_PRIVATE_ON_APPS_UPDATED, |
+ file_manager_private::OnAppsUpdated::kEventName, |
+ file_manager_private::OnAppsUpdated::Create()); |
} |
void EventRouter::Shutdown() { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ |
+ if (ArcSessionManager::IsAllowedForProfile(profile_)) |
+ arc::ArcServiceManager::Get()->RemoveObserver(this); |
+ |
chromeos::system::TimezoneSettings::GetInstance()->RemoveObserver(this); |
DLOG_IF(WARNING, !file_watchers_.empty()) |
@@ -492,6 +503,9 @@ void EventRouter::ObserveEvents() { |
pref_change_registrar_->Add(prefs::kUse24HourClock, callback); |
chromeos::system::TimezoneSettings::GetInstance()->AddObserver(this); |
+ |
+ if (ArcSessionManager::IsAllowedForProfile(profile_)) |
+ arc::ArcServiceManager::Get()->AddObserver(this); |
} |
// File watch setup routines. |