Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(760)

Unified Diff: chrome/browser/chromeos/extensions/file_manager/event_router.cc

Issue 2487623002: Notify Files App when ARC++ app is installed/removed (Closed)
Patch Set: Add IsInitialized to arc_service_manager. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.
« no previous file with comments | « chrome/browser/chromeos/extensions/file_manager/event_router.h ('k') | chrome/common/extensions/api/file_manager_private.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698