Chromium Code Reviews| Index: chrome/browser/chromeos/login/multi_profile_first_run_notification.cc |
| diff --git a/chrome/browser/chromeos/login/multi_profile_first_run_notification.cc b/chrome/browser/chromeos/login/multi_profile_first_run_notification.cc |
| index 0b23ee3dfbde0dc6ce0a4fd84acdd6b8fb204b98..7910203ece4fb1a1fee7a1b3db8f47705bbd2733 100644 |
| --- a/chrome/browser/chromeos/login/multi_profile_first_run_notification.cc |
| +++ b/chrome/browser/chromeos/login/multi_profile_first_run_notification.cc |
| @@ -4,6 +4,7 @@ |
| #include "chrome/browser/chromeos/login/multi_profile_first_run_notification.h" |
| +#include "ash/system/system_notifier.h" |
| #include "base/prefs/pref_service.h" |
| #include "base/strings/string16.h" |
| #include "chrome/browser/chromeos/login/user_manager.h" |
| @@ -26,6 +27,30 @@ namespace { |
| const char kNotificationId[] = "chrome:://login/multiprofile"; |
| +class MultiProfileFirstRunNotificationDelegate |
| + : public message_center::NotificationDelegate { |
| + public: |
| + MultiProfileFirstRunNotificationDelegate(base::Closure callback) |
|
xiyuan
2013/12/09 19:54:01
nit: const base::Closure&
stevenjb
2013/12/09 20:18:52
explicit
Also, maybe name 'user_close_callback'?
Jun Mukai
2013/12/09 21:23:43
Done.
Jun Mukai
2013/12/09 21:23:43
Done.
|
| + : callback_(callback) {} |
| + |
| + // Overridden from message_center::NotificationDelegate: |
| + virtual void Display() OVERRIDE {} |
| + virtual void Error() OVERRIDE {} |
| + virtual void Close(bool by_user) OVERRIDE { |
| + if (by_user) |
| + callback_.Run(); |
| + } |
| + virtual void Click() OVERRIDE {} |
| + |
| + protected: |
| + virtual ~MultiProfileFirstRunNotificationDelegate() {} |
| + |
| + private: |
| + base::Closure callback_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(MultiProfileFirstRunNotificationDelegate); |
| +}; |
| + |
| } // namespace |
| MultiProfileFirstRunNotification::MultiProfileFirstRunNotification() |
| @@ -61,9 +86,11 @@ void MultiProfileFirstRunNotification::UserProfilePrepared( |
| ui::ResourceBundle::GetSharedInstance().GetImageNamed( |
| IDR_NOTIFICATION_ALERT), |
| display_source, |
| - message_center::NotifierId(), |
| + message_center::NotifierId( |
| + message_center::NotifierId::SYSTEM_COMPONENT, |
| + ash::system_notifier::kNotifierMultiProfileFirstRun), |
| message_center::RichNotificationData(), |
| - new message_center::HandleNotificationClickedDelegate( |
| + new MultiProfileFirstRunNotificationDelegate( |
| base::Bind(&MultiProfileFirstRunNotification::OnDismissed, |
| weak_ptr_factory_.GetWeakPtr(), |
| user_profile)))); |