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 #include "chrome/browser/signin/profile_identity_provider.h"
      6 
      7 #include "components/signin/core/browser/profile_oauth2_token_service.h"
      8 
      9 #if !defined(OS_ANDROID)
     10 #include "chrome/browser/ui/webui/signin/login_ui_service.h"
     11 #endif
     12 
     13 ProfileIdentityProvider::ProfileIdentityProvider(
     14     SigninManagerBase* signin_manager,
     15     ProfileOAuth2TokenService* token_service,
     16     LoginUIService* login_ui_service)
     17     : signin_manager_(signin_manager),
     18       token_service_(token_service),
     19       login_ui_service_(login_ui_service) {
     20   signin_manager_->AddObserver(this);
     21 }
     22 
     23 ProfileIdentityProvider::~ProfileIdentityProvider() {
     24   signin_manager_->RemoveObserver(this);
     25 }
     26 
     27 std::string ProfileIdentityProvider::GetActiveUsername() {
     28   return signin_manager_->GetAuthenticatedUsername();
     29 }
     30 
     31 std::string ProfileIdentityProvider::GetActiveAccountId() {
     32   return signin_manager_->GetAuthenticatedAccountId();
     33 }
     34 
     35 OAuth2TokenService* ProfileIdentityProvider::GetTokenService() {
     36   return token_service_;
     37 }
     38 
     39 bool ProfileIdentityProvider::RequestLogin() {
     40 #if defined(OS_ANDROID)
     41   return false;
     42 #else
     43   login_ui_service_->ShowLoginPopup();
     44   return true;
     45 #endif
     46 }
     47 
     48 void ProfileIdentityProvider::GoogleSigninSucceeded(
     49     const std::string& account_id,
     50     const std::string& username,
     51     const std::string& password) {
     52   FireOnActiveAccountLogin();
     53 }
     54 
     55 void ProfileIdentityProvider::GoogleSignedOut(const std::string& account_id,
     56                                               const std::string& username) {
     57   FireOnActiveAccountLogout();
     58 }
     59