Home | History | Annotate | Download | only in signin
      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 CHROME_BROWSER_SIGNIN_PROFILE_IDENTITY_PROVIDER_H_
      6 #define CHROME_BROWSER_SIGNIN_PROFILE_IDENTITY_PROVIDER_H_
      7 
      8 #include "base/macros.h"
      9 #include "components/signin/core/browser/signin_manager_base.h"
     10 #include "google_apis/gaia/identity_provider.h"
     11 
     12 class LoginUIService;
     13 class ProfileOAuth2TokenService;
     14 
     15 // An identity provider implementation that's backed by
     16 // ProfileOAuth2TokenService and SigninManager.
     17 class ProfileIdentityProvider : public IdentityProvider,
     18                                 public SigninManagerBase::Observer {
     19  public:
     20   ProfileIdentityProvider(SigninManagerBase* signin_manager,
     21                           ProfileOAuth2TokenService* token_service,
     22                           LoginUIService* login_ui_service);
     23   virtual ~ProfileIdentityProvider();
     24 
     25   // IdentityProvider:
     26   virtual std::string GetActiveUsername() OVERRIDE;
     27   virtual std::string GetActiveAccountId() OVERRIDE;
     28   virtual OAuth2TokenService* GetTokenService() OVERRIDE;
     29   virtual bool RequestLogin() OVERRIDE;
     30 
     31   // SigninManagerBase::Observer:
     32   virtual void GoogleSigninSucceeded(const std::string& account_id,
     33                                      const std::string& username,
     34                                      const std::string& password) OVERRIDE;
     35   virtual void GoogleSignedOut(const std::string& account_id,
     36                                const std::string& username) OVERRIDE;
     37 
     38  private:
     39   SigninManagerBase* const signin_manager_;
     40   ProfileOAuth2TokenService* const token_service_;
     41   LoginUIService* const login_ui_service_;
     42 
     43   DISALLOW_COPY_AND_ASSIGN(ProfileIdentityProvider);
     44 };
     45 
     46 #endif  // CHROME_BROWSER_SIGNIN_PROFILE_IDENTITY_PROVIDER_H_
     47