| Index: chrome/browser/extensions/api/identity/account_tracker.h
|
| diff --git a/chrome/browser/extensions/api/identity/account_tracker.h b/chrome/browser/extensions/api/identity/account_tracker.h
|
| deleted file mode 100644
|
| index 3cd3a98aa80b21919f212ccb4c204c9ca2777f51..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/api/identity/account_tracker.h
|
| +++ /dev/null
|
| @@ -1,153 +0,0 @@
|
| -// Copyright 2013 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_EXTENSIONS_API_IDENTITY_ACCOUNT_TRACKER_H_
|
| -#define CHROME_BROWSER_EXTENSIONS_API_IDENTITY_ACCOUNT_TRACKER_H_
|
| -
|
| -#include <map>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/observer_list.h"
|
| -#include "components/signin/core/browser/signin_error_controller.h"
|
| -#include "components/signin/core/browser/signin_manager_base.h"
|
| -#include "google_apis/gaia/gaia_oauth_client.h"
|
| -#include "google_apis/gaia/oauth2_token_service.h"
|
| -
|
| -class GoogleServiceAuthError;
|
| -class Profile;
|
| -
|
| -namespace extensions {
|
| -
|
| -struct AccountIds {
|
| - std::string account_key; // The account ID used by OAuth2TokenService.
|
| - std::string gaia;
|
| - std::string email;
|
| -};
|
| -
|
| -class AccountIdFetcher;
|
| -
|
| -// The AccountTracker keeps track of what accounts exist on the
|
| -// profile and the state of their credentials. The tracker fetches the
|
| -// gaia ID of each account it knows about.
|
| -//
|
| -// The AccountTracker maintains these invariants:
|
| -// 1. Events are only fired after the gaia ID has been fetched.
|
| -// 2. Add/Remove and SignIn/SignOut pairs are always generated in order.
|
| -// 3. SignIn follows Add, and there will be a SignOut between SignIn & Remove.
|
| -// 4. If there is no primary account, there are no other accounts.
|
| -class AccountTracker : public OAuth2TokenService::Observer,
|
| - public SigninErrorController::AuthStatusProvider,
|
| - public SigninManagerBase::Observer {
|
| - public:
|
| - explicit AccountTracker(Profile* profile);
|
| - virtual ~AccountTracker();
|
| -
|
| - class Observer {
|
| - public:
|
| - virtual void OnAccountAdded(const AccountIds& ids) = 0;
|
| - virtual void OnAccountRemoved(const AccountIds& ids) = 0;
|
| - virtual void OnAccountSignInChanged(const AccountIds& ids,
|
| - bool is_signed_in) = 0;
|
| - };
|
| -
|
| - void Shutdown();
|
| -
|
| - void ReportAuthError(const std::string& account_key,
|
| - const GoogleServiceAuthError& error);
|
| -
|
| - void AddObserver(Observer* observer);
|
| - void RemoveObserver(Observer* observer);
|
| -
|
| - // Returns the list of accounts that are signed in, and for which gaia IDs
|
| - // have been fetched. The primary account for the profile will be first
|
| - // in the vector. Additional accounts will be in order of their gaia IDs.
|
| - std::vector<AccountIds> GetAccounts() const;
|
| - std::string FindAccountKeyByGaiaId(const std::string& gaia_id);
|
| -
|
| - // OAuth2TokenService::Observer implementation.
|
| - virtual void OnRefreshTokenAvailable(const std::string& account_key) OVERRIDE;
|
| - virtual void OnRefreshTokenRevoked(const std::string& account_key) OVERRIDE;
|
| -
|
| - void OnUserInfoFetchSuccess(AccountIdFetcher* fetcher,
|
| - const std::string& gaia_id);
|
| - void OnUserInfoFetchFailure(AccountIdFetcher* fetcher);
|
| -
|
| - // AuthStatusProvider implementation.
|
| - virtual std::string GetAccountId() const OVERRIDE;
|
| - virtual std::string GetUsername() const OVERRIDE;
|
| - virtual GoogleServiceAuthError GetAuthStatus() const OVERRIDE;
|
| -
|
| - // SigninManagerBase::Observer implementation.
|
| - virtual void GoogleSigninSucceeded(const std::string& username,
|
| - const std::string& password) OVERRIDE;
|
| - virtual void GoogleSignedOut(const std::string& username) OVERRIDE;
|
| -
|
| - // Sets the state of an account. Does not fire notifications.
|
| - void SetAccountStateForTest(AccountIds ids, bool is_signed_in);
|
| -
|
| - private:
|
| - struct AccountState {
|
| - AccountIds ids;
|
| - bool is_signed_in;
|
| - };
|
| -
|
| - const std::string signin_manager_account_id() const;
|
| -
|
| - void NotifyAccountAdded(const AccountState& account);
|
| - void NotifyAccountRemoved(const AccountState& account);
|
| - void NotifySignInChanged(const AccountState& account);
|
| -
|
| - void ClearAuthError(const std::string& account_key);
|
| - void UpdateSignInState(const std::string& account_key, bool is_signed_in);
|
| -
|
| - void StartTrackingAccount(const std::string& account_key);
|
| - void StopTrackingAccount(const std::string& account_key);
|
| - void StopTrackingAllAccounts();
|
| - void StartFetchingUserInfo(const std::string& account_key);
|
| - void DeleteFetcher(AccountIdFetcher* fetcher);
|
| -
|
| - Profile* profile_;
|
| - std::map<std::string, AccountIdFetcher*> user_info_requests_;
|
| - std::map<std::string, AccountState> accounts_;
|
| - std::map<std::string, GoogleServiceAuthError> account_errors_;
|
| - ObserverList<Observer> observer_list_;
|
| -};
|
| -
|
| -class AccountIdFetcher : public OAuth2TokenService::Consumer,
|
| - public gaia::GaiaOAuthClient::Delegate {
|
| - public:
|
| - AccountIdFetcher(Profile* profile,
|
| - AccountTracker* tracker,
|
| - const std::string& account_key);
|
| - virtual ~AccountIdFetcher();
|
| -
|
| - const std::string& account_key() { return account_key_; }
|
| -
|
| - void Start();
|
| -
|
| - // OAuth2TokenService::Consumer implementation.
|
| - virtual void OnGetTokenSuccess(const OAuth2TokenService::Request* request,
|
| - const std::string& access_token,
|
| - const base::Time& expiration_time) OVERRIDE;
|
| - virtual void OnGetTokenFailure(const OAuth2TokenService::Request* request,
|
| - const GoogleServiceAuthError& error) OVERRIDE;
|
| -
|
| - // gaia::GaiaOAuthClient::Delegate implementation.
|
| - virtual void OnGetUserIdResponse(const std::string& gaia_id) OVERRIDE;
|
| - virtual void OnOAuthError() OVERRIDE;
|
| - virtual void OnNetworkError(int response_code) OVERRIDE;
|
| -
|
| - private:
|
| - Profile* profile_;
|
| - AccountTracker* tracker_;
|
| - const std::string account_key_;
|
| -
|
| - scoped_ptr<OAuth2TokenService::Request> login_token_request_;
|
| - scoped_ptr<gaia::GaiaOAuthClient> gaia_oauth_client_;
|
| -};
|
| -
|
| -} // namespace extensions
|
| -
|
| -#endif // CHROME_BROWSER_EXTENSIONS_API_IDENTITY_ACCOUNT_TRACKER_H_
|
|
|