// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_REMOTING_SETUP_FLOW_LOGIN_STEP_H_ #define CHROME_BROWSER_REMOTING_SETUP_FLOW_LOGIN_STEP_H_ #include "chrome/browser/remoting/setup_flow.h" #include "chrome/common/net/gaia/gaia_auth_consumer.h" #include "chrome/common/net/gaia/gaia_auth_fetcher.h" namespace remoting { // Implementation of login step for remoting setup flow. class SetupFlowLoginStep : public SetupFlowStepBase, public GaiaAuthConsumer { public: SetupFlowLoginStep(); SetupFlowLoginStep(const string16& error_message); virtual ~SetupFlowLoginStep(); // SetupFlowStep implementation. virtual void HandleMessage(const std::string& message, const Value* arg); virtual void Cancel(); // GaiaAuthConsumer implementation. virtual void OnClientLoginSuccess( const GaiaAuthConsumer::ClientLoginResult& credentials); virtual void OnClientLoginFailure(const GoogleServiceAuthError& error); virtual void OnIssueAuthTokenSuccess(const std::string& service, const std::string& auth_token); virtual void OnIssueAuthTokenFailure(const std::string& service, const GoogleServiceAuthError& error); protected: virtual void DoStart(); private: void OnUserSubmittedAuth(const std::string& user, const std::string& password, const std::string& captcha, const std::string& access_code); void ShowGaiaLogin(const DictionaryValue& args); void ShowGaiaSuccessAndSettingUp(); void ShowGaiaFailed(const GoogleServiceAuthError& error); string16 error_message_; // Fetcher to obtain the Chromoting Directory token. scoped_ptr<GaiaAuthFetcher> authenticator_; DISALLOW_COPY_AND_ASSIGN(SetupFlowLoginStep); }; } // namespace remoting #endif // CHROME_BROWSER_REMOTING_SETUP_FLOW_LOGIN_STEP_H_