| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 #ifndef COMPONENTS_SIGNIN_CORE_BROWSER_ACCOUNT_RECONCILOR_H_ | 4 #ifndef COMPONENTS_SIGNIN_CORE_BROWSER_ACCOUNT_RECONCILOR_H_ |
| 5 #define COMPONENTS_SIGNIN_CORE_BROWSER_ACCOUNT_RECONCILOR_H_ | 5 #define COMPONENTS_SIGNIN_CORE_BROWSER_ACCOUNT_RECONCILOR_H_ |
| 6 | 6 |
| 7 #include <deque> | 7 #include <deque> |
| 8 #include <functional> | 8 #include <functional> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 // KeyedService implementation. | 54 // KeyedService implementation. |
| 55 virtual void Shutdown() OVERRIDE; | 55 virtual void Shutdown() OVERRIDE; |
| 56 | 56 |
| 57 // Add or remove observers for the merge session notification. | 57 // Add or remove observers for the merge session notification. |
| 58 void AddMergeSessionObserver(MergeSessionHelper::Observer* observer); | 58 void AddMergeSessionObserver(MergeSessionHelper::Observer* observer); |
| 59 void RemoveMergeSessionObserver(MergeSessionHelper::Observer* observer); | 59 void RemoveMergeSessionObserver(MergeSessionHelper::Observer* observer); |
| 60 | 60 |
| 61 ProfileOAuth2TokenService* token_service() { return token_service_; } | 61 ProfileOAuth2TokenService* token_service() { return token_service_; } |
| 62 SigninClient* client() { return client_; } | 62 SigninClient* client() { return client_; } |
| 63 | 63 |
| 64 protected: |
| 65 // Used during GetAccountsFromCookie. |
| 66 // Stores a callback for the next action to perform. |
| 67 typedef base::Callback< |
| 68 void(const GoogleServiceAuthError& error, |
| 69 const std::vector<std::pair<std::string, bool> >&)> |
| 70 GetAccountsFromCookieCallback; |
| 71 |
| 72 virtual void GetAccountsFromCookie(GetAccountsFromCookieCallback callback); |
| 73 |
| 64 private: | 74 private: |
| 65 // An std::set<> for use with email addresses that uses | 75 // An std::set<> for use with email addresses that uses |
| 66 // gaia::CanonicalizeEmail() during comparisons. | 76 // gaia::CanonicalizeEmail() during comparisons. |
| 67 // TODO(rogerta): this is a workaround for the fact that SigninManager and | 77 // TODO(rogerta): this is a workaround for the fact that SigninManager and |
| 68 // SigninOAuthHelper use the gaia "email" property when adding accounts to | 78 // SigninOAuthHelper use the gaia "email" property when adding accounts to |
| 69 // the token service, whereas gaia::ParseListAccountsData() returns email | 79 // the token service, whereas gaia::ParseListAccountsData() returns email |
| 70 // addresses that have been passed through gaia::CanonicalizeEmail(). These | 80 // addresses that have been passed through gaia::CanonicalizeEmail(). These |
| 71 // two types of email addresses are not directly comparable. | 81 // two types of email addresses are not directly comparable. |
| 72 class EmailLessFunc : public std::less<std::string> { | 82 class EmailLessFunc : public std::less<std::string> { |
| 73 public: | 83 public: |
| (...skipping 18 matching lines...) Expand all Loading... |
| 92 } | 102 } |
| 93 | 103 |
| 94 const EmailSet& GetValidChromeAccountsForTesting() const { | 104 const EmailSet& GetValidChromeAccountsForTesting() const { |
| 95 return valid_chrome_accounts_; | 105 return valid_chrome_accounts_; |
| 96 } | 106 } |
| 97 | 107 |
| 98 const EmailSet& GetInvalidChromeAccountsForTesting() const { | 108 const EmailSet& GetInvalidChromeAccountsForTesting() const { |
| 99 return invalid_chrome_accounts_; | 109 return invalid_chrome_accounts_; |
| 100 } | 110 } |
| 101 | 111 |
| 102 // Used during GetAccountsFromCookie. | |
| 103 // Stores a callback for the next action to perform. | |
| 104 typedef base::Callback< | |
| 105 void(const GoogleServiceAuthError& error, | |
| 106 const std::vector<std::pair<std::string, bool> >&)> | |
| 107 GetAccountsFromCookieCallback; | |
| 108 | 112 |
| 109 friend class AccountReconcilorTest; | 113 friend class AccountReconcilorTest; |
| 110 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, SigninManagerRegistration); | 114 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, SigninManagerRegistration); |
| 111 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, Reauth); | 115 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, Reauth); |
| 112 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, ProfileAlreadyConnected); | 116 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, ProfileAlreadyConnected); |
| 113 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, GetAccountsFromCookieSuccess); | 117 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, GetAccountsFromCookieSuccess); |
| 114 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, GetAccountsFromCookieFailure); | 118 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, GetAccountsFromCookieFailure); |
| 115 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, ValidateAccountsFromTokens); | 119 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, ValidateAccountsFromTokens); |
| 116 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, | 120 FRIEND_TEST_ALL_PREFIXES(AccountReconcilorTest, |
| 117 ValidateAccountsFromTokensFailedUserInfo); | 121 ValidateAccountsFromTokensFailedUserInfo); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 void StartReconcile(); | 170 void StartReconcile(); |
| 167 void FinishReconcile(); | 171 void FinishReconcile(); |
| 168 void AbortReconcile(); | 172 void AbortReconcile(); |
| 169 void CalculateIfReconcileIsDone(); | 173 void CalculateIfReconcileIsDone(); |
| 170 void ScheduleStartReconcileIfChromeAccountsChanged(); | 174 void ScheduleStartReconcileIfChromeAccountsChanged(); |
| 171 void HandleSuccessfulAccountIdCheck(const std::string& account_id); | 175 void HandleSuccessfulAccountIdCheck(const std::string& account_id); |
| 172 void HandleFailedAccountIdCheck(const std::string& account_id); | 176 void HandleFailedAccountIdCheck(const std::string& account_id); |
| 173 void HandleRefreshTokenFetched(const std::string& account_id, | 177 void HandleRefreshTokenFetched(const std::string& account_id, |
| 174 const std::string& refresh_token); | 178 const std::string& refresh_token); |
| 175 | 179 |
| 176 void GetAccountsFromCookie(GetAccountsFromCookieCallback callback); | |
| 177 void ContinueReconcileActionAfterGetGaiaAccounts( | 180 void ContinueReconcileActionAfterGetGaiaAccounts( |
| 178 const GoogleServiceAuthError& error, | 181 const GoogleServiceAuthError& error, |
| 179 const std::vector<std::pair<std::string, bool> >& accounts); | 182 const std::vector<std::pair<std::string, bool> >& accounts); |
| 180 void ValidateAccountsFromTokenService(); | 183 void ValidateAccountsFromTokenService(); |
| 181 // Note internally that this |account_id| is added to the cookie jar. | 184 // Note internally that this |account_id| is added to the cookie jar. |
| 182 bool MarkAccountAsAddedToCookie(const std::string& account_id); | 185 bool MarkAccountAsAddedToCookie(const std::string& account_id); |
| 183 // Note internally that this |account_id| is added to the token service. | 186 // Note internally that this |account_id| is added to the token service. |
| 184 void MarkAccountAsAddedToChrome(const std::string& account_id); | 187 void MarkAccountAsAddedToChrome(const std::string& account_id); |
| 185 | 188 |
| 186 void OnCookieChanged(const net::CanonicalCookie* cookie); | 189 void OnCookieChanged(const net::CanonicalCookie* cookie); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 253 EmailSet invalid_chrome_accounts_; | 256 EmailSet invalid_chrome_accounts_; |
| 254 std::vector<std::string> add_to_cookie_; | 257 std::vector<std::string> add_to_cookie_; |
| 255 std::vector<std::pair<std::string, int> > add_to_chrome_; | 258 std::vector<std::pair<std::string, int> > add_to_chrome_; |
| 256 | 259 |
| 257 std::deque<GetAccountsFromCookieCallback> get_gaia_accounts_callbacks_; | 260 std::deque<GetAccountsFromCookieCallback> get_gaia_accounts_callbacks_; |
| 258 | 261 |
| 259 DISALLOW_COPY_AND_ASSIGN(AccountReconcilor); | 262 DISALLOW_COPY_AND_ASSIGN(AccountReconcilor); |
| 260 }; | 263 }; |
| 261 | 264 |
| 262 #endif // COMPONENTS_SIGNIN_CORE_BROWSER_ACCOUNT_RECONCILOR_H_ | 265 #endif // COMPONENTS_SIGNIN_CORE_BROWSER_ACCOUNT_RECONCILOR_H_ |
| OLD | NEW |