signin_account_id_helper.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
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 3// found in the LICENSE file. 4 5#ifndef COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_ACCOUNT_ID_HELPER_H_ 6#define COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_ACCOUNT_ID_HELPER_H_ 7 8#include "components/signin/core/browser/signin_manager.h" 9#include "google_apis/gaia/gaia_oauth_client.h" 10#include "google_apis/gaia/oauth2_token_service.h" 11 12class CookieSettings; 13class GaiaAuthFetcher; 14class ProfileOAuth2TokenService; 15class SigninClient; 16 17// The helper class for managing the obfuscated GAIA ID of the primary 18// account. It fetches the ID when user first signs into Chrome or when user 19// opens a connected Chrome profile without an obfuscated GAIA ID, and stores 20// the ID in the profile preference. 21class SigninAccountIdHelper : public SigninManagerBase::Observer, 22 public OAuth2TokenService::Observer { 23 public: 24 SigninAccountIdHelper(SigninClient* client, 25 ProfileOAuth2TokenService* token_service, 26 SigninManagerBase* signin_manager); 27 virtual ~SigninAccountIdHelper(); 28 29 // SigninManagerBase::Observer: 30 virtual void GoogleSignedOut(const std::string& account_id, 31 const std::string& username) OVERRIDE; 32 33 // OAuth2TokenService::Observer: 34 virtual void OnRefreshTokenAvailable(const std::string& account_id) OVERRIDE; 35 36 // Disables network requests for testing to avoid messing up with irrelevant 37 // tests. 38 static void SetDisableForTest(bool disable_for_test); 39 40 private: 41 // Invoked when receiving the response for |account_id_fetcher_|. 42 void OnPrimaryAccountIdFetched(const std::string& gaia_id); 43 44 // Helper class for fetching the obfuscated account ID. 45 class GaiaIdFetcher; 46 scoped_ptr<GaiaIdFetcher> id_fetcher_; 47 48 static bool disable_for_test_; 49 50 SigninClient* client_; 51 ProfileOAuth2TokenService* token_service_; 52 SigninManagerBase* signin_manager_; 53 54 DISALLOW_COPY_AND_ASSIGN(SigninAccountIdHelper); 55}; 56 57#endif // COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_ACCOUNT_ID_HELPER_H_ 58