Chromium Code Reviews| Index: chrome/browser/sync/signin_manager.h |
| diff --git a/chrome/browser/sync/signin_manager.h b/chrome/browser/sync/signin_manager.h |
| index 240036928856c8de4bee646978ec5bf1cc658132..ff05bdcdf7fb171ced8a2ba856b4217cf2a548cf 100644 |
| --- a/chrome/browser/sync/signin_manager.h |
| +++ b/chrome/browser/sync/signin_manager.h |
| @@ -6,6 +6,13 @@ |
| // which user is signed in. When a user is signed in, a ClientLogin |
| // request is run on their behalf. Auth tokens are fetched from Google |
| // and the results are stored in the TokenService. |
| +// |
| +// **NOTE** on semantics of SigninManager: |
| +// |
| +// Once a signin is successful, the username becomes "established" and will not |
| +// be cleared until a SignOut operation is performed (persists across |
| +// restarts). Until that happens, the signin manager can still be used to |
| +// refresh credentials, but changing the username is not permitted. |
| #ifndef CHROME_BROWSER_SYNC_SIGNIN_MANAGER_H_ |
| #define CHROME_BROWSER_SYNC_SIGNIN_MANAGER_H_ |
| @@ -52,12 +59,16 @@ class SigninManager : public GaiaAuthConsumer, |
| void Initialize(Profile* profile); |
| bool IsInitialized() const; |
| - // If a user is signed in, this will return their name. |
| + // If a user has previously established a username and SignOut has not been |
|
Andrew T Wilson (Slow)
2011/11/28 04:54:02
To be clear, "established a username" == "has had
tim (not reviewing)
2011/11/28 05:30:21
Established means validated / authenticated. It c
Andrew T Wilson (Slow)
2011/11/28 17:28:58
Is there a reason why cros can't just also use the
|
| + // called, this will return the username. |
| // Otherwise, it will return an empty string. |
| - const std::string& GetUsername(); |
| + const std::string& GetAuthenticatedUsername(); |
| - // Sets the user name. Used for migrating credentials from previous system. |
| - void SetUsername(const std::string& username); |
| + // Sets the user name. Note: |username| should be already authenticated as |
| + // this is a sticky operation (in contrast to StartSignIn). |
| + // TODO(tim): Remove this in favor of passing username on construction by |
| + // (by platform / depending on StartBehavior). Bug 88109. |
| + void SetAuthenticatedUsername(const std::string& username); |
| // Attempt to sign in this user with OAuth. If successful, set a preference |
| // indicating the signed in user and send out a notification, then start |
| @@ -82,11 +93,6 @@ class SigninManager : public GaiaAuthConsumer, |
| // associated with the user, and canceling all auth in progress. |
| void SignOut(); |
| - // Called when a new request to re-authenticate a user is in progress. |
| - // Will clear in memory data but leaves the db as such so when the browser |
| - // restarts we can use the old token(which might throw a password error). |
| - void ClearInMemoryData(); |
| - |
| // GaiaAuthConsumer |
| virtual void OnClientLoginSuccess(const ClientLoginResult& result) OVERRIDE; |
| virtual void OnClientLoginFailure( |
| @@ -118,18 +124,25 @@ class SigninManager : public GaiaAuthConsumer, |
| const content::NotificationDetails& details) OVERRIDE; |
| private: |
| + FRIEND_TEST_ALL_PREFIXES(SigninManagerTest, ClearTransientSigninData); |
| + FRIEND_TEST_ALL_PREFIXES(SigninManagerTest, ProvideSecondFactorSuccess); |
| + FRIEND_TEST_ALL_PREFIXES(SigninManagerTest, ProvideSecondFactorFailure); |
| void PrepareForSignin(); |
| void PrepareForOAuthSignin(); |
| + // Called when a new request to re-authenticate a user is in progress. |
| + // Will clear in memory data but leaves the db as such so when the browser |
| + // restarts we can use the old token(which might throw a password error). |
| + void ClearTransientSigninData(); |
| + |
| Profile* profile_; |
| // ClientLogin identity. |
| - std::string username_; |
| + std::string possibly_invalid_username_; |
| std::string password_; // This is kept empty whenever possible. |
| bool had_two_factor_error_; |
| // OAuth identity. |
| - std::string oauth_username_; |
| std::string oauth1_request_token_; |
| void CleanupNotificationRegistration(); |
| @@ -147,6 +160,8 @@ class SigninManager : public GaiaAuthConsumer, |
| // Register for notifications from the TokenService. |
| content::NotificationRegistrar registrar_; |
| + std::string authenticated_username_; |
|
Andrew T Wilson (Slow)
2011/11/28 04:54:02
My big question with this CL is: why does SigninMa
tim (not reviewing)
2011/11/28 05:30:21
My motivation for this change (and the one before
Andrew T Wilson (Slow)
2011/11/28 17:28:58
OK, sounds like we both agree on the long-term vis
|
| + |
| DISALLOW_COPY_AND_ASSIGN(SigninManager); |
| }; |