- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / signin / google_auto_login_helper.h
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.
4
5 #ifndef CHROME_BROWSER_ANDROID_SIGNIN_GOOGLE_AUTO_LOGIN_HELPER_H_
6 #define CHROME_BROWSER_ANDROID_SIGNIN_GOOGLE_AUTO_LOGIN_HELPER_H_
7
8 #include "chrome/browser/signin/ubertoken_fetcher.h"
9 #include "google_apis/gaia/gaia_auth_consumer.h"
10
11 class GaiaAuthFetcher;
12 class Profile;
13
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 {
18  public:
19   explicit GoogleAutoLoginHelper(Profile* profile);
20   virtual ~GoogleAutoLoginHelper();
21
22   void LogIn();
23   void LogIn(const std::string& account_id);
24
25   // Overridden from GaiaAuthConsumer.
26   virtual void OnMergeSessionSuccess(const std::string& data) OVERRIDE;
27   virtual void OnMergeSessionFailure(const GoogleServiceAuthError& error)
28       OVERRIDE;
29
30   // Overridden from UbertokenConsumer.
31   virtual void OnUbertokenSuccess(const std::string& token) OVERRIDE;
32   virtual void OnUbertokenFailure(const GoogleServiceAuthError& error) OVERRIDE;
33
34  private:
35   Profile* profile_;
36   scoped_ptr<GaiaAuthFetcher> gaia_auth_fetcher_;
37   scoped_ptr<UbertokenFetcher> uber_token_fetcher_;
38
39   DISALLOW_COPY_AND_ASSIGN(GoogleAutoLoginHelper);
40 };
41
42 #endif  // CHROME_BROWSER_ANDROID_SIGNIN_GOOGLE_AUTO_LOGIN_HELPER_H_