| Index: chrome/browser/ui/webui/signin/login_ui_service.h
|
| diff --git a/chrome/browser/ui/webui/signin/login_ui_service.h b/chrome/browser/ui/webui/signin/login_ui_service.h
|
| index d0d242af248d6a24d12ed0064f67069d3d5e5942..9864b4e13c7c77ec9316c398449fe04d5b95f543 100644
|
| --- a/chrome/browser/ui/webui/signin/login_ui_service.h
|
| +++ b/chrome/browser/ui/webui/signin/login_ui_service.h
|
| @@ -11,14 +11,24 @@
|
|
|
| class Profile;
|
|
|
| -namespace content {
|
| -class WebUI;
|
| -};
|
| -
|
| // The LoginUIService helps track per-profile information for the login UI -
|
| // for example, whether there is login UI currently on-screen.
|
| class LoginUIService : public ProfileKeyedService {
|
| public:
|
| + // Various UI components implement this API to allow LoginUIService to
|
| + // manipulate their associated login UI.
|
| + class LoginUI {
|
| + public:
|
| + // Invoked when the login UI should be brought to the foreground.
|
| + virtual void FocusUI() = 0;
|
| +
|
| + // Invoked when the login UI should be closed. This can be invoked if the
|
| + // user takes an action that should display new login UI.
|
| + virtual void CloseUI() = 0;
|
| + protected:
|
| + virtual ~LoginUI() {}
|
| + };
|
| +
|
| // Creates a LoginUIService associated with the passed |profile|. |profile|
|
| // is used to create a new browser in the case that ShowLoginUI() is invoked
|
| // when no browser windows are open (e.g. via the Mac menu bar).
|
| @@ -26,33 +36,26 @@ class LoginUIService : public ProfileKeyedService {
|
| virtual ~LoginUIService();
|
|
|
| // Gets the currently active login UI, or null if no login UI is active.
|
| - content::WebUI* current_login_ui() const {
|
| + LoginUI* current_login_ui() const {
|
| return ui_;
|
| }
|
|
|
| // Sets the currently active login UI. It is illegal to call this if there is
|
| // already login UI visible.
|
| - void SetLoginUI(content::WebUI* ui);
|
| + void SetLoginUI(LoginUI* ui);
|
|
|
| // Called when login UI is closed. If the passed UI is the current login UI,
|
| // sets current_login_ui() to null.
|
| - void LoginUIClosed(content::WebUI* ui);
|
| -
|
| - // Brings the current login UI for this profile to the foreground (it is an
|
| - // error to call this if there is no visible login UI.
|
| - void FocusLoginUI();
|
| + void LoginUIClosed(LoginUI* ui);
|
|
|
| - // Displays the login dialog if the user is not yet logged in, otherwise
|
| - // displays the sync setup dialog. If |force_login| is true, then the login
|
| - // UI is displayed even if the user is already logged in (useful if we need
|
| - // to gather GAIA credentials for oauth tokens). Virtual for mocking purposes.
|
| - // TODO(atwilson): Refactor this API to make the behavior more clear and use
|
| - // an enum instead of a boolean (http://crbug.com/118795).
|
| - virtual void ShowLoginUI(bool force_login);
|
| + // Brings the login UI to the foreground, or if there is no login UI,
|
| + // navigates to the login UI page in a new browser tab.
|
| + // Virtual for mocking purposes.
|
| + virtual void ShowLoginUI();
|
|
|
| private:
|
| // Weak pointer to the currently active login UI, or null if none.
|
| - content::WebUI* ui_;
|
| + LoginUI* ui_;
|
|
|
| // Weak pointer to the profile this service is associated with.
|
| Profile* profile_;
|
|
|