Index: chrome/browser/notifications/message_center_settings_controller.cc |
diff --git a/chrome/browser/notifications/message_center_settings_controller.cc b/chrome/browser/notifications/message_center_settings_controller.cc |
index 6a70af4a0aa87548754621c7d6f26374975dbfee..25795dd2f2b2189a281ce6a0a0b6f1cd2663d61b 100644 |
--- a/chrome/browser/notifications/message_center_settings_controller.cc |
+++ b/chrome/browser/notifications/message_center_settings_controller.cc |
@@ -134,9 +134,7 @@ MessageCenterSettingsController::MessageCenterSettingsController( |
registrar_.Add(this, |
chrome::NOTIFICATION_PROFILE_DESTROYED, |
content::NotificationService::AllBrowserContextsAndSources()); |
- registrar_.Add(this, |
- chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED, |
- content::NotificationService::AllBrowserContextsAndSources()); |
+ g_browser_process->profile_manager()->GetProfileInfoCache().AddObserver(this); |
RebuildNotifierGroups(); |
#if defined(OS_CHROMEOS) |
@@ -147,6 +145,8 @@ MessageCenterSettingsController::MessageCenterSettingsController( |
} |
MessageCenterSettingsController::~MessageCenterSettingsController() { |
+ g_browser_process->profile_manager()-> |
+ GetProfileInfoCache().RemoveObserver(this); |
#if defined(OS_CHROMEOS) |
// UserManager may not exist in some tests. |
if (user_manager::UserManager::IsInitialized()) |
@@ -432,6 +432,37 @@ void MessageCenterSettingsController::Observe( |
NotifierGroupChanged()); |
} |
+void MessageCenterSettingsController::OnProfileAdded( |
+ const base::FilePath& profile_path) { |
+ RebuildNotifierGroups(); |
Cait (Slow)
2015/02/06 16:47:22
This pattern (Rebuild & Notify Observers) seems to
noms (inactive)
2015/02/12 21:46:02
Done.
|
+ FOR_EACH_OBSERVER(message_center::NotifierSettingsObserver, |
+ observers_, |
+ NotifierGroupChanged()); |
+} |
+void MessageCenterSettingsController::OnProfileWasRemoved( |
+ const base::FilePath& profile_path, |
+ const base::string16& profile_name) { |
+ RebuildNotifierGroups(); |
+ FOR_EACH_OBSERVER(message_center::NotifierSettingsObserver, |
+ observers_, |
+ NotifierGroupChanged()); |
+} |
+void MessageCenterSettingsController::OnProfileNameChanged( |
+ const base::FilePath& profile_path, |
+ const base::string16& old_profile_name) { |
+ RebuildNotifierGroups(); |
+ FOR_EACH_OBSERVER(message_center::NotifierSettingsObserver, |
+ observers_, |
+ NotifierGroupChanged()); |
+} |
+void MessageCenterSettingsController::OnProfileUserNameChanged( |
+ const base::FilePath& profile_path) { |
+ RebuildNotifierGroups(); |
+ FOR_EACH_OBSERVER(message_center::NotifierSettingsObserver, |
+ observers_, |
+ NotifierGroupChanged()); |
+} |
+ |
#if defined(OS_CHROMEOS) |
void MessageCenterSettingsController::CreateNotifierGroupForGuestLogin() { |
// Already created. |
@@ -465,7 +496,6 @@ void MessageCenterSettingsController::RebuildNotifierGroups() { |
current_notifier_group_ = 0; |
const size_t count = profile_info_cache_->GetNumberOfProfiles(); |
- |
for (size_t i = 0; i < count; ++i) { |
scoped_ptr<message_center::ProfileNotifierGroup> group( |
new message_center::ProfileNotifierGroup( |