Index: chrome/browser/ui/webui/signin/login_ui_service.cc |
diff --git a/chrome/browser/ui/webui/signin/login_ui_service.cc b/chrome/browser/ui/webui/signin/login_ui_service.cc |
index 76faffec2e4899b1dd29a01a82c27c3f72d8d1a0..cb4a81aa046a405aaf0b85dc5a8d481ce49b9335 100644 |
--- a/chrome/browser/ui/webui/signin/login_ui_service.cc |
+++ b/chrome/browser/ui/webui/signin/login_ui_service.cc |
@@ -33,18 +33,17 @@ void LoginUIService::RemoveObserver(LoginUIService::Observer* observer) { |
observer_list_.RemoveObserver(observer); |
} |
+LoginUIService::LoginUI* LoginUIService::current_login_ui() const { |
+ return ui_list_.empty() ? nullptr : ui_list_.front(); |
+} |
+ |
void LoginUIService::SetLoginUI(LoginUI* ui) { |
- DCHECK(!current_login_ui() || current_login_ui() == ui); |
- ui_ = ui; |
- FOR_EACH_OBSERVER(Observer, observer_list_, OnLoginUIShown(ui_)); |
+ ui_list_.remove(ui); |
+ ui_list_.push_front(ui); |
} |
void LoginUIService::LoginUIClosed(LoginUI* ui) { |
- if (current_login_ui() != ui) |
- return; |
- |
- ui_ = NULL; |
- FOR_EACH_OBSERVER(Observer, observer_list_, OnLoginUIClosed(ui)); |
+ ui_list_.remove(ui); |
} |
void LoginUIService::SyncConfirmationUIClosed( |
@@ -55,10 +54,6 @@ void LoginUIService::SyncConfirmationUIClosed( |
OnSyncConfirmationUIClosed(result)); |
} |
-void LoginUIService::UntrustedLoginUIShown() { |
- FOR_EACH_OBSERVER(Observer, observer_list_, OnUntrustedLoginUIShown()); |
-} |
- |
void LoginUIService::ShowLoginPopup() { |
#if defined(OS_CHROMEOS) |
NOTREACHED(); |