Chromium Code Reviews| Index: chrome/browser/chromeos/login/session/user_session_manager.h |
| diff --git a/chrome/browser/chromeos/login/session/user_session_manager.h b/chrome/browser/chromeos/login/session/user_session_manager.h |
| index 9be9b718e3548d87a8e858381cb2998ee901df49..f8767749be8a1e37293c89b12883f3601f4ebc79 100644 |
| --- a/chrome/browser/chromeos/login/session/user_session_manager.h |
| +++ b/chrome/browser/chromeos/login/session/user_session_manager.h |
| @@ -15,8 +15,10 @@ |
| #include "base/observer_list.h" |
| #include "chrome/browser/chromeos/base/locale_util.h" |
| #include "chrome/browser/chromeos/login/signin/oauth2_login_manager.h" |
| +#include "chrome/browser/chromeos/login/signin/oauth2_token_fetcher.h" |
| #include "chromeos/dbus/session_manager_client.h" |
| #include "chromeos/login/auth/authenticator.h" |
| +#include "chromeos/login/auth/login_performer.h" |
| #include "chromeos/login/auth/user_context.h" |
| #include "components/user_manager/user.h" |
| #include "components/user_manager/user_manager.h" |
| @@ -79,7 +81,8 @@ class UserSessionManager |
| public net::NetworkChangeNotifier::ConnectionTypeObserver, |
| public base::SupportsWeakPtr<UserSessionManager>, |
| public UserSessionManagerDelegate, |
| - public user_manager::UserManager::UserSessionStateObserver { |
| + public user_manager::UserManager::UserSessionStateObserver, |
| + public OAuth2TokenFetcher::Delegate { |
| public: |
| // Context of StartSession calls. |
| typedef enum { |
| @@ -96,6 +99,10 @@ class UserSessionManager |
| SECONDARY_USER_SESSION_AFTER_CRASH, |
| } StartSessionType; |
| + using FetchOAuth2TokensCallback = |
| + base::Callback<void(const UserContext& user_context, |
| + LoginPerformer::AuthorizationMode auth_mode)>; |
| + |
| // Returns UserSessionManager instance. |
| static UserSessionManager* GetInstance(); |
| @@ -117,6 +124,9 @@ class UserSessionManager |
| scoped_refptr<Authenticator> CreateAuthenticator( |
| AuthStatusConsumer* consumer); |
| + void FetchOAuth2Tokens(const UserContext& user_context, |
| + const FetchOAuth2TokensCallback& callback); |
| + |
| // Start user session given |user_context|. |
| // OnProfilePrepared() will be called on |delegate| once Profile is ready. |
| void StartSession(const UserContext& user_context, |
| @@ -254,6 +264,11 @@ class UserSessionManager |
| // Used when restoring user sessions after crash. |
| void OnProfilePrepared(Profile* profile, bool browser_launched) override; |
| + // OAuth2TokenFetcher::Delegate overrides. |
| + void OnOAuth2TokensAvailable( |
| + const GaiaAuthConsumer::ClientOAuthResult& oauth2_tokens) override; |
| + void OnOAuth2TokensFetchFailed() override; |
| + |
| void ChildAccountStatusReceivedCallback(); |
| void StopChildStatusObserving(); |
| @@ -434,6 +449,10 @@ class UserSessionManager |
| std::string chrome_client_id_; |
| std::string chrome_client_secret_; |
| + std::string oauthlogin_access_token_; |
|
xiyuan
2015/04/20 22:02:41
nit: Consider add this to UserContext.
achuithb
2015/04/21 07:10:21
Done.
|
| + std::string refresh_token_; |
|
xiyuan
2015/04/20 22:02:41
nit: Use refresh_token field in user_context_.
achuithb
2015/04/21 07:10:21
Done.
|
| + FetchOAuth2TokensCallback login_callback_; |
| + |
| // Per-user-session Input Methods states. |
| std::map<Profile*, scoped_refptr<input_method::InputMethodManager::State>, |
| ProfileCompare> default_ime_states_; |
| @@ -449,6 +468,8 @@ class UserSessionManager |
| // Child account status is necessary for InitializeStartUrls call. |
| bool waiting_for_child_account_status_; |
| + scoped_ptr<OAuth2TokenFetcher> oauth2_token_fetcher_; |
| + |
| base::WeakPtrFactory<UserSessionManager> weak_factory_; |
| DISALLOW_COPY_AND_ASSIGN(UserSessionManager); |