#ifndef CHROME_BROWSER_UI_WEBUI_SIGNIN_USER_MANAGER_SCREEN_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_SIGNIN_USER_MANAGER_SCREEN_HANDLER_H_
#include "base/compiler_specific.h"
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/profiles/profile_metrics.h"
#include "chrome/browser/ui/host_desktop.h"
#include "content/public/browser/web_ui_message_handler.h"
#include "google_apis/gaia/gaia_auth_consumer.h"
class GaiaAuthFetcher;
namespace base {
class DictionaryValue;
class FilePath;
class ListValue;
}
class UserManagerScreenHandler : public content::WebUIMessageHandler,
public GaiaAuthConsumer {
public:
UserManagerScreenHandler();
virtual ~UserManagerScreenHandler();
virtual void RegisterMessages() OVERRIDE;
void GetLocalizedValues(base::DictionaryValue* localized_strings);
private:
class ProfileUpdateObserver;
void HandleInitialize(const base::ListValue* args);
void HandleAddUser(const base::ListValue* args);
void HandleAuthenticatedLaunchUser(const base::ListValue* args);
void HandleLaunchGuest(const base::ListValue* args);
void HandleLaunchUser(const base::ListValue* args);
void HandleRemoveUser(const base::ListValue* args);
virtual void OnClientLoginSuccess(const ClientLoginResult& result) OVERRIDE;
virtual void OnClientLoginFailure(const GoogleServiceAuthError& error)
OVERRIDE;
void SendUserList();
void ReportAuthenticationResult(bool success,
ProfileMetrics::ProfileAuth metric);
scoped_ptr<ProfileUpdateObserver> profileInfoCacheObserver_;
chrome::HostDesktopType desktop_type_;
scoped_ptr<GaiaAuthFetcher> client_login_;
size_t authenticating_profile_index_;
std::string password_attempt_;
DISALLOW_COPY_AND_ASSIGN(UserManagerScreenHandler);
};
#endif