Chromium Code Reviews| 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( |