1 // Copyright 2019 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/signin_manager_android_factory.h" 6 7 #include "chrome/browser/android/signin/signin_manager_android.h" 8 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/signin/identity_manager_factory.h" 10 #include "components/keyed_service/content/browser_context_dependency_manager.h" 11 SigninManagerAndroidFactory()12SigninManagerAndroidFactory::SigninManagerAndroidFactory() 13 : BrowserContextKeyedServiceFactory( 14 "SigninManagerAndroid", 15 BrowserContextDependencyManager::GetInstance()) { 16 DependsOn(IdentityManagerFactory::GetInstance()); 17 } 18 ~SigninManagerAndroidFactory()19SigninManagerAndroidFactory::~SigninManagerAndroidFactory() {} 20 21 // static 22 base::android::ScopedJavaLocalRef<jobject> GetJavaObjectForProfile(Profile * profile)23SigninManagerAndroidFactory::GetJavaObjectForProfile(Profile* profile) { 24 return static_cast<SigninManagerAndroid*>( 25 GetInstance()->GetServiceForBrowserContext(profile, true)) 26 ->GetJavaObject(); 27 } 28 29 // static GetInstance()30SigninManagerAndroidFactory* SigninManagerAndroidFactory::GetInstance() { 31 static base::NoDestructor<SigninManagerAndroidFactory> instance; 32 return instance.get(); 33 } 34 BuildServiceInstanceFor(content::BrowserContext * context) const35KeyedService* SigninManagerAndroidFactory::BuildServiceInstanceFor( 36 content::BrowserContext* context) const { 37 Profile* profile = Profile::FromBrowserContext(context); 38 auto* identity_manager = IdentityManagerFactory::GetForProfile(profile); 39 40 return new SigninManagerAndroid(profile, identity_manager); 41 } 42