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..2e8203a87e8018e8c67bf718f9271cb49cd5290c 100644 |
--- a/chrome/browser/chromeos/extensions/file_manager/event_router.cc |
+++ b/chrome/browser/chromeos/extensions/file_manager/event_router.cc |
@@ -6,6 +6,7 @@ |
#include <stddef.h> |
+#include <set> |
#include <utility> |
#include "base/bind.h" |
@@ -17,6 +18,7 @@ |
#include "base/threading/thread_task_runner_handle.h" |
#include "base/values.h" |
#include "chrome/browser/app_mode/app_mode_utils.h" |
+#include "chrome/browser/chromeos/arc/arc_session_manager.h" |
#include "chrome/browser/chromeos/drive/drive_integration_service.h" |
#include "chrome/browser/chromeos/drive/file_system_util.h" |
#include "chrome/browser/chromeos/extensions/file_manager/private_api_util.h" |
@@ -397,11 +399,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 (arc::ArcServiceManager::IsInitialized()) |
+ arc::ArcServiceManager::Get()->RemoveObserver(this); |
+ |
chromeos::system::TimezoneSettings::GetInstance()->RemoveObserver(this); |
DLOG_IF(WARNING, !file_watchers_.empty()) |
@@ -492,6 +505,9 @@ void EventRouter::ObserveEvents() { |
pref_change_registrar_->Add(prefs::kUse24HourClock, callback); |
chromeos::system::TimezoneSettings::GetInstance()->AddObserver(this); |
+ |
+ if (arc::ArcSessionManager::IsAllowedForProfile(profile_)) |
+ arc::ArcServiceManager::Get()->AddObserver(this); |
} |
// File watch setup routines. |