| Index: chrome/browser/ui/webui/signin/login_ui_service.cc
|
| ===================================================================
|
| --- chrome/browser/ui/webui/signin/login_ui_service.cc (revision 145894)
|
| +++ chrome/browser/ui/webui/signin/login_ui_service.cc (working copy)
|
| @@ -13,14 +13,27 @@
|
|
|
| LoginUIService::~LoginUIService() {}
|
|
|
| +void LoginUIService::AddObserver(Observer* observer) {
|
| + observer_list_.AddObserver(observer);
|
| +}
|
| +
|
| +void LoginUIService::RemoveObserver(Observer* observer) {
|
| + observer_list_.RemoveObserver(observer);
|
| +}
|
| +
|
| void LoginUIService::SetLoginUI(LoginUI* ui) {
|
| DCHECK(!current_login_ui() || current_login_ui() == ui);
|
| ui_ = ui;
|
| + FOR_EACH_OBSERVER(Observer, observer_list_, OnLoginUIShown(ui_));
|
| }
|
|
|
| void LoginUIService::LoginUIClosed(LoginUI* ui) {
|
| - if (current_login_ui() == ui)
|
| - ui_ = NULL;
|
| + if (current_login_ui() != ui)
|
| + return;
|
| +
|
| + LoginUI* ui = ui_;
|
| + ui_ = NULL;
|
| + FOR_EACH_OBSERVER(Observer, observer_list_, OnLoginUIClosed(ui));
|
| }
|
|
|
| void LoginUIService::ShowLoginUI(Browser* browser) {
|
|
|