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

Unified Diff: chrome/browser/chromeos/login/signin_screen_controller.cc

Issue 2568973002: chromeos: Replace user image notifications with observer (Closed)
Patch Set: rebase 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/login/signin_screen_controller.cc
diff --git a/chrome/browser/chromeos/login/signin_screen_controller.cc b/chrome/browser/chromeos/login/signin_screen_controller.cc
index 9e62ba38258b0dff379f5310bce50e9761f872df..5e524b7e93b35a93413cf643b4660e9456862ace 100644
--- a/chrome/browser/chromeos/login/signin_screen_controller.cc
+++ b/chrome/browser/chromeos/login/signin_screen_controller.cc
@@ -32,13 +32,13 @@ SignInScreenController::SignInScreenController(
user_selection_screen_->SetView(user_board_view);
user_board_view->Bind(*user_selection_screen_.get());
- registrar_.Add(this, chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED,
- content::NotificationService::AllSources());
registrar_.Add(this, chrome::NOTIFICATION_SESSION_STARTED,
content::NotificationService::AllSources());
+ user_manager::UserManager::Get()->AddObserver(this);
}
SignInScreenController::~SignInScreenController() {
+ user_manager::UserManager::Get()->RemoveObserver(this);
instance_ = nullptr;
}
@@ -68,6 +68,11 @@ void SignInScreenController::OnUserRemoved(const AccountId& account_id) {
user_selection_screen_->OnUserRemoved(account_id);
}
+void SignInScreenController::OnUserImageChanged(
+ const user_manager::User& user) {
+ user_selection_screen_->OnUserImageChanged(user);
+}
+
void SignInScreenController::SendUserList() {
user_selection_screen_->HandleGetUsers();
}
@@ -87,19 +92,14 @@ void SignInScreenController::Observe(
int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) {
- if (type == chrome::NOTIFICATION_SESSION_STARTED) {
- // Stop listening to any notification once session has started.
- // Sign in screen objects are marked for deletion with DeleteSoon so
- // make sure no object would be used after session has started.
- // http://crbug.com/125276
- registrar_.RemoveAll();
- return;
- }
- if (type == chrome::NOTIFICATION_LOGIN_USER_IMAGE_CHANGED) {
- user_selection_screen_->OnUserImageChanged(
- *content::Details<user_manager::User>(details).ptr());
- return;
- }
+ DCHECK_EQ(chrome::NOTIFICATION_SESSION_STARTED, type);
+
+ // Stop listening to any notification once session has started.
+ // Sign in screen objects are marked for deletion with DeleteSoon so
+ // make sure no object would be used after session has started.
+ // http://crbug.com/125276
+ registrar_.RemoveAll();
+ user_manager::UserManager::Get()->RemoveObserver(this);
}
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698