Index: chrome/browser/chromeos/login/user_flow.h |
diff --git a/chrome/browser/chromeos/login/user_flow.h b/chrome/browser/chromeos/login/user_flow.h |
index c8a93f3eeeb3143026cc5c1673f76c5aa397bab4..1a0ed34b88e3000ce24251aa76bf2b4085dfb2dc 100644 |
--- a/chrome/browser/chromeos/login/user_flow.h |
+++ b/chrome/browser/chromeos/login/user_flow.h |
@@ -7,6 +7,7 @@ |
#include "base/compiler_specific.h" |
#include "chrome/browser/chromeos/login/login_status_consumer.h" |
+#include "chrome/browser/profiles/profile.h" |
namespace chromeos { |
@@ -21,7 +22,7 @@ class UserFlow { |
virtual bool HandleLoginFailure(const LoginFailure& failure, |
LoginDisplayHost* host) = 0; |
virtual bool HandlePasswordChangeDetected(LoginDisplayHost* host) = 0; |
- virtual void LaunchExtraSteps(LoginDisplayHost* host) = 0; |
+ virtual void LaunchExtraSteps(Profile* profile, LoginDisplayHost* host) = 0; |
}; |
// UserFlow implementation for regular login flow. |
@@ -34,7 +35,25 @@ class DefaultUserFlow : public UserFlow { |
virtual bool HandleLoginFailure(const LoginFailure& failure, |
LoginDisplayHost* host) OVERRIDE; |
virtual bool HandlePasswordChangeDetected(LoginDisplayHost* host) OVERRIDE; |
- virtual void LaunchExtraSteps(LoginDisplayHost* host) OVERRIDE; |
+ virtual void LaunchExtraSteps(Profile* profile, |
+ LoginDisplayHost* host) OVERRIDE; |
+}; |
+ |
+// UserFlow stub for non-regular flows. |
+class ExtendedUserFlow : public UserFlow { |
+ public: |
+ explicit ExtendedUserFlow(const std::string& user_id); |
+ virtual ~ExtendedUserFlow(); |
+ |
+ protected: |
+ // Subclasses can call this method to unregister flow in the next event. |
+ virtual void UnregisterFlowSoon(); |
+ std::string user_id() { |
+ return user_id_; |
+ }; |
+ |
+ private: |
+ std::string user_id_; |
}; |
} // namespace chromeos |