Index: chrome/browser/ui/webui/signin/login_ui_service.cc |
=================================================================== |
--- chrome/browser/ui/webui/signin/login_ui_service.cc (revision 144917) |
+++ chrome/browser/ui/webui/signin/login_ui_service.cc (working copy) |
@@ -5,9 +5,20 @@ |
#include "chrome/browser/ui/webui/signin/login_ui_service.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/chrome_pages.h" |
#include "chrome/common/url_constants.h" |
+#include "chrome/common/chrome_notification_types.h" |
+#include "content/public/browser/notification_service.h" |
+#include "content/public/browser/notification_source.h" |
+#include "content/public/browser/page_navigator.h" |
+#include "content/public/common/page_transition_types.h" |
+#include "content/public/common/referrer.h" |
+#include "webkit/glue/window_open_disposition.h" |
+using content::OpenURLParams; |
+using content::Referrer; |
+ |
LoginUIService::LoginUIService() : ui_(NULL) { |
} |
@@ -16,11 +27,15 @@ |
void LoginUIService::SetLoginUI(LoginUI* ui) { |
DCHECK(!current_login_ui() || current_login_ui() == ui); |
ui_ = ui; |
+ FireLoginUIChanged(); |
} |
void LoginUIService::LoginUIClosed(LoginUI* ui) { |
- if (current_login_ui() == ui) |
- ui_ = NULL; |
+ if (current_login_ui() != ui) |
+ return; |
+ |
+ ui_ = NULL; |
+ FireLoginUIChanged(); |
} |
void LoginUIService::ShowLoginUI(Browser* browser) { |
@@ -33,3 +48,23 @@ |
// Need to navigate to the settings page and display the UI. |
chrome::ShowSettingsSubPage(browser, chrome::kSyncSetupSubPage); |
} |
+ |
+void LoginUIService::ShowLoginDialogUI(Browser* browser) { |
Andrew T Wilson (Slow)
2012/07/03 17:34:09
This isn't displaying a dialog - it's displaying a
Munjal (Google)
2012/07/03 17:52:17
I changed the name to ShowLoginUIPopup. I think it
Andrew T Wilson (Slow)
2012/07/09 19:52:06
Let's put this in the caller (take it out of this
Munjal (Google)
2012/07/09 21:13:26
Done.
|
+ if (ui_) { |
+ // We already have active login UI - make it visible. |
+ ui_->FocusUI(); |
+ return; |
+ } |
+ |
+ OpenURLParams params( |
+ GURL(chrome::kChromeUISyncPromoURL), Referrer(), NEW_POPUP, |
+ content::PAGE_TRANSITION_START_PAGE, false); |
+ browser->OpenURL(params); |
+} |
+ |
+void LoginUIService::FireLoginUIChanged() const { |
+ content::NotificationService::current()->Notify( |
+ chrome::NOTIFICATION_LOGIN_UI_CHANGED, |
+ content::Source<LoginUIService>(this), |
+ content::NotificationService::NoDetails()); |
Andrew T Wilson (Slow)
2012/07/03 17:34:09
Does it make sense to send out the current login U
Munjal (Google)
2012/07/03 17:52:17
We discussed that remember? In fact, your suggesti
Andrew T Wilson (Slow)
2012/07/09 19:52:06
Yeah, I remember, and I was just reconsidering the
|
+} |