1 // Copyright 2013 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.
5 #ifndef CHROME_BROWSER_ANDROID_SIGNIN_GOOGLE_AUTO_LOGIN_HELPER_H_
6 #define CHROME_BROWSER_ANDROID_SIGNIN_GOOGLE_AUTO_LOGIN_HELPER_H_
8 #include "chrome/browser/signin/ubertoken_fetcher.h"
9 #include "google_apis/gaia/gaia_auth_consumer.h"
11 class GaiaAuthFetcher;
14 // Logs in the current signed in user into Google services. Populates the cookie
15 // jar with Google credentials of the signed in user.
16 class GoogleAutoLoginHelper : public GaiaAuthConsumer,
17 public UbertokenConsumer {
19 explicit GoogleAutoLoginHelper(Profile* profile);
20 virtual ~GoogleAutoLoginHelper();
23 void LogIn(const std::string& account_id);
25 // Overridden from GaiaAuthConsumer.
26 virtual void OnMergeSessionSuccess(const std::string& data) OVERRIDE;
27 virtual void OnMergeSessionFailure(const GoogleServiceAuthError& error)
30 // Overridden from UbertokenConsumer.
31 virtual void OnUbertokenSuccess(const std::string& token) OVERRIDE;
32 virtual void OnUbertokenFailure(const GoogleServiceAuthError& error) OVERRIDE;
36 scoped_ptr<GaiaAuthFetcher> gaia_auth_fetcher_;
37 scoped_ptr<UbertokenFetcher> uber_token_fetcher_;
39 DISALLOW_COPY_AND_ASSIGN(GoogleAutoLoginHelper);
42 #endif // CHROME_BROWSER_ANDROID_SIGNIN_GOOGLE_AUTO_LOGIN_HELPER_H_