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 13ProfileIdentityProvider::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 23ProfileIdentityProvider::~ProfileIdentityProvider() { 24 signin_manager_->RemoveObserver(this); 25} 26 27std::string ProfileIdentityProvider::GetActiveUsername() { 28 return signin_manager_->GetAuthenticatedUsername(); 29} 30 31std::string ProfileIdentityProvider::GetActiveAccountId() { 32 return signin_manager_->GetAuthenticatedAccountId(); 33} 34 35OAuth2TokenService* ProfileIdentityProvider::GetTokenService() { 36 return token_service_; 37} 38 39bool ProfileIdentityProvider::RequestLogin() { 40#if defined(OS_ANDROID) 41 return false; 42#else 43 login_ui_service_->ShowLoginPopup(); 44 return true; 45#endif 46} 47 48void ProfileIdentityProvider::GoogleSigninSucceeded( 49 const std::string& account_id, 50 const std::string& username, 51 const std::string& password) { 52 FireOnActiveAccountLogin(); 53} 54 55void ProfileIdentityProvider::GoogleSignedOut(const std::string& account_id, 56 const std::string& username) { 57 FireOnActiveAccountLogout(); 58} 59