Commit abf63702 authored by Henrique Ferreiro's avatar Henrique Ferreiro Committed by Commit Bot

Eliminate SigninManager as public interface

After recent changes, SigninManager exposes no public API surfaces
over SigninManagerBase. This CL eliminates nearly all usage of
signin_manager.h and in particular eliminates the no-longer needed
SigninManager::FromSigninManagerBase() method.

The remaining usage is for sites that *construct* SigninManager
instances. These sites will need to remain as such until SigninManager
is actually merged into SigninManagerBase.

This is a step in eliminating the inheritance relationship between
SigninManager and SigninManagerBase, as motivated in this design doc:

https://docs.google.com/document/d/15y-Db27BV08vrIyelHB-3CwiAfDYh-FigNKGXrqSWto/edit#heading=h.8jjdy95t6p7x

and described concretely here:

https://docs.google.com/document/d/15y-Db27BV08vrIyelHB-3CwiAfDYh-FigNKGXrqSWto/edit#heading=h.mbkrv9nkb93w

TBR=rohitrao@chromium.org

Bug: 952766, 883648
Change-Id: Icb114b11dc2c74d8b49cfd77baba33b707a4157e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1565316
Commit-Queue: Colin Blundell <blundell@chromium.org>
Reviewed-by: default avatarMihai Sardarescu <msarda@chromium.org>
Cr-Commit-Position: refs/heads/master@{#665898}
parent 0bd38378
...@@ -155,9 +155,8 @@ void SigninManagerAndroid::OnSignInCompleted( ...@@ -155,9 +155,8 @@ void SigninManagerAndroid::OnSignInCompleted(
// TODO(crbug.com/889902): Migrate to IdentityManager once there's an // TODO(crbug.com/889902): Migrate to IdentityManager once there's an
// API mapping for SigninManager::SignIn(). // API mapping for SigninManager::SignIn().
SigninManager::FromSigninManagerBase( IdentityManagerFactory::GetForProfile(profile_)->GetSigninManager()->SignIn(
IdentityManagerFactory::GetForProfile(profile_)->GetSigninManager()) base::android::ConvertJavaStringToUTF8(env, username));
->SignIn(base::android::ConvertJavaStringToUTF8(env, username));
} }
void SigninManagerAndroid::SignOut(JNIEnv* env, void SigninManagerAndroid::SignOut(JNIEnv* env,
......
...@@ -38,24 +38,16 @@ ...@@ -38,24 +38,16 @@
namespace { namespace {
#if !defined(OS_CHROMEOS)
using ConcreteSigninManager = SigninManager;
#else
using ConcreteSigninManager = SigninManagerBase;
#endif
// Helper function returning a newly constructed PrimaryAccountMutator for // Helper function returning a newly constructed PrimaryAccountMutator for
// |profile|. May return null if mutation of the signed-in state is not // |profile|. May return null if mutation of the signed-in state is not
// supported on the current platform. // supported on the current platform.
std::unique_ptr<identity::PrimaryAccountMutator> BuildPrimaryAccountMutator( std::unique_ptr<identity::PrimaryAccountMutator> BuildPrimaryAccountMutator(
Profile* profile, Profile* profile,
AccountTrackerService* account_tracker_service, AccountTrackerService* account_tracker_service,
ConcreteSigninManager* signin_manager) { SigninManagerBase* signin_manager) {
#if !defined(OS_CHROMEOS) #if !defined(OS_CHROMEOS)
return std::make_unique<identity::PrimaryAccountMutatorImpl>( return std::make_unique<identity::PrimaryAccountMutatorImpl>(
account_tracker_service, account_tracker_service, signin_manager, profile->GetPrefs());
SigninManager::FromSigninManagerBase(signin_manager),
profile->GetPrefs());
#else #else
return nullptr; return nullptr;
#endif #endif
...@@ -78,19 +70,19 @@ std::unique_ptr<identity::AccountsMutator> BuildAccountsMutator( ...@@ -78,19 +70,19 @@ std::unique_ptr<identity::AccountsMutator> BuildAccountsMutator(
#endif #endif
} }
std::unique_ptr<ConcreteSigninManager> BuildSigninManager( std::unique_ptr<SigninManagerBase> BuildSigninManager(
Profile* profile, Profile* profile,
AccountTrackerService* account_tracker_service, AccountTrackerService* account_tracker_service,
ProfileOAuth2TokenService* token_service) { ProfileOAuth2TokenService* token_service) {
std::unique_ptr<ConcreteSigninManager> signin_manager; std::unique_ptr<SigninManagerBase> signin_manager;
SigninClient* client = SigninClient* client =
ChromeSigninClientFactory::GetInstance()->GetForProfile(profile); ChromeSigninClientFactory::GetInstance()->GetForProfile(profile);
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
signin_manager = std::make_unique<ConcreteSigninManager>( signin_manager = std::make_unique<SigninManagerBase>(
client, token_service, account_tracker_service, client, token_service, account_tracker_service,
AccountConsistencyModeManager::GetMethodForProfile(profile)); AccountConsistencyModeManager::GetMethodForProfile(profile));
#else #else
signin_manager = std::make_unique<ConcreteSigninManager>( signin_manager = std::make_unique<SigninManager>(
client, token_service, account_tracker_service, client, token_service, account_tracker_service,
AccountConsistencyModeManager::GetMethodForProfile(profile)); AccountConsistencyModeManager::GetMethodForProfile(profile));
#endif #endif
...@@ -187,7 +179,7 @@ KeyedService* IdentityManagerFactory::BuildServiceInstanceFor( ...@@ -187,7 +179,7 @@ KeyedService* IdentityManagerFactory::BuildServiceInstanceFor(
auto gaia_cookie_manager_service = std::make_unique<GaiaCookieManagerService>( auto gaia_cookie_manager_service = std::make_unique<GaiaCookieManagerService>(
token_service.get(), ChromeSigninClientFactory::GetForProfile(profile)); token_service.get(), ChromeSigninClientFactory::GetForProfile(profile));
std::unique_ptr<ConcreteSigninManager> signin_manager = BuildSigninManager( std::unique_ptr<SigninManagerBase> signin_manager = BuildSigninManager(
profile, account_tracker_service.get(), token_service.get()); profile, account_tracker_service.get(), token_service.get());
std::unique_ptr<identity::PrimaryAccountMutator> primary_account_mutator = std::unique_ptr<identity::PrimaryAccountMutator> primary_account_mutator =
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_registry_simple.h"
#include "components/prefs/scoped_user_pref_update.h" #include "components/prefs/scoped_user_pref_update.h"
#include "components/signin/core/browser/account_info_util.h" #include "components/signin/core/browser/account_info_util.h"
#include "components/signin/core/browser/signin_manager.h" #include "components/signin/core/browser/signin_manager_base.h"
#include "components/signin/core/browser/signin_pref_names.h" #include "components/signin/core/browser/signin_pref_names.h"
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
......
...@@ -104,12 +104,6 @@ void SigninManager::OnSigninAllowedPrefChanged() { ...@@ -104,12 +104,6 @@ void SigninManager::OnSigninAllowedPrefChanged() {
} }
} }
// static
SigninManager* SigninManager::FromSigninManagerBase(
SigninManagerBase* manager) {
return static_cast<SigninManager*>(manager);
}
bool SigninManager::IsAllowedUsername(const std::string& username) const { bool SigninManager::IsAllowedUsername(const std::string& username) const {
const PrefService* local_state = local_state_pref_registrar_.prefs(); const PrefService* local_state = local_state_pref_registrar_.prefs();
if (!local_state) if (!local_state)
......
...@@ -52,11 +52,6 @@ class SigninManager : public SigninManagerBase, ...@@ -52,11 +52,6 @@ class SigninManager : public SigninManagerBase,
signin::AccountConsistencyMethod account_consistency); signin::AccountConsistencyMethod account_consistency);
~SigninManager() override; ~SigninManager() override;
// Returns |manager| as a SigninManager instance. Relies on the fact that on
// platforms where signin_manager.* is built, all SigninManagerBase instances
// are actually SigninManager instances.
static SigninManager* FromSigninManagerBase(SigninManagerBase* manager);
// On platforms where SigninManager is responsible for dealing with // On platforms where SigninManager is responsible for dealing with
// invalid username policy updates, we need to check this during // invalid username policy updates, we need to check this during
// initialization and sign the user out. // initialization and sign the user out.
......
...@@ -72,8 +72,8 @@ class SigninManagerBase { ...@@ -72,8 +72,8 @@ class SigninManagerBase {
// invariant that any SigninManagerBase object can be cast to a // invariant that any SigninManagerBase object can be cast to a
// SigninManager object when not on ChromeOS. Make the constructor private // SigninManager object when not on ChromeOS. Make the constructor private
// and add SigninManager as a friend to support this. // and add SigninManager as a friend to support this.
// TODO(883648): Eliminate the need to downcast SigninManagerBase to // TODO(952766): Eliminate this once SigninManager and SigninManagerBase are
// SigninManager and then eliminate this as well. // merged.
#if !defined(OS_CHROMEOS) #if !defined(OS_CHROMEOS)
private: private:
#endif #endif
......
...@@ -60,7 +60,7 @@ std::unique_ptr<AccountFetcherService> BuildAccountFetcherService( ...@@ -60,7 +60,7 @@ std::unique_ptr<AccountFetcherService> BuildAccountFetcherService(
return account_fetcher_service; return account_fetcher_service;
} }
std::unique_ptr<SigninManager> BuildSigninManager( std::unique_ptr<SigninManagerBase> BuildSigninManager(
ios::ChromeBrowserState* chrome_browser_state, ios::ChromeBrowserState* chrome_browser_state,
AccountTrackerService* account_tracker_service, AccountTrackerService* account_tracker_service,
ProfileOAuth2TokenService* token_service) { ProfileOAuth2TokenService* token_service) {
...@@ -139,7 +139,7 @@ std::unique_ptr<KeyedService> IdentityManagerFactory::BuildServiceInstanceFor( ...@@ -139,7 +139,7 @@ std::unique_ptr<KeyedService> IdentityManagerFactory::BuildServiceInstanceFor(
token_service.get(), token_service.get(),
SigninClientFactory::GetForBrowserState(browser_state)); SigninClientFactory::GetForBrowserState(browser_state));
std::unique_ptr<SigninManager> signin_manager = BuildSigninManager( std::unique_ptr<SigninManagerBase> signin_manager = BuildSigninManager(
browser_state, account_tracker_service.get(), token_service.get()); browser_state, account_tracker_service.get(), token_service.get());
auto primary_account_mutator = auto primary_account_mutator =
......
...@@ -71,7 +71,7 @@ std::unique_ptr<AccountFetcherService> BuildAccountFetcherService( ...@@ -71,7 +71,7 @@ std::unique_ptr<AccountFetcherService> BuildAccountFetcherService(
return account_fetcher_service; return account_fetcher_service;
} }
std::unique_ptr<SigninManager> BuildSigninManager( std::unique_ptr<SigninManagerBase> BuildSigninManager(
WebViewBrowserState* browser_state, WebViewBrowserState* browser_state,
AccountTrackerService* account_tracker_service, AccountTrackerService* account_tracker_service,
ProfileOAuth2TokenService* token_service) { ProfileOAuth2TokenService* token_service) {
...@@ -141,7 +141,7 @@ WebViewIdentityManagerFactory::BuildServiceInstanceFor( ...@@ -141,7 +141,7 @@ WebViewIdentityManagerFactory::BuildServiceInstanceFor(
token_service.get(), token_service.get(),
WebViewSigninClientFactory::GetForBrowserState(browser_state)); WebViewSigninClientFactory::GetForBrowserState(browser_state));
std::unique_ptr<SigninManager> signin_manager = BuildSigninManager( std::unique_ptr<SigninManagerBase> signin_manager = BuildSigninManager(
browser_state, account_tracker_service.get(), token_service.get()); browser_state, account_tracker_service.get(), token_service.get());
auto primary_account_mutator = auto primary_account_mutator =
......
...@@ -22,10 +22,6 @@ ...@@ -22,10 +22,6 @@
#include "services/identity/public/cpp/accounts_in_cookie_jar_info.h" #include "services/identity/public/cpp/accounts_in_cookie_jar_info.h"
#include "services/identity/public/cpp/scope_set.h" #include "services/identity/public/cpp/scope_set.h"
#if !defined(OS_CHROMEOS)
#include "components/signin/core/browser/signin_manager.h"
#endif
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
#include "base/android/jni_android.h" #include "base/android/jni_android.h"
#endif #endif
......
...@@ -198,13 +198,12 @@ IdentityTestEnvironment::BuildIdentityManagerForTests( ...@@ -198,13 +198,12 @@ IdentityTestEnvironment::BuildIdentityManagerForTests(
signin_client, token_service.get(), account_tracker_service.get(), signin_client, token_service.get(), account_tracker_service.get(),
std::make_unique<image_fetcher::FakeImageDecoder>()); std::make_unique<image_fetcher::FakeImageDecoder>());
#if defined(OS_CHROMEOS)
std::unique_ptr<SigninManagerBase> signin_manager = std::unique_ptr<SigninManagerBase> signin_manager =
#if defined(OS_CHROMEOS)
std::make_unique<SigninManagerBase>(signin_client, token_service.get(), std::make_unique<SigninManagerBase>(signin_client, token_service.get(),
account_tracker_service.get(), account_tracker_service.get(),
account_consistency); account_consistency);
#else #else
std::unique_ptr<SigninManagerBase> signin_manager =
std::make_unique<SigninManager>(signin_client, token_service.get(), std::make_unique<SigninManager>(signin_client, token_service.get(),
account_tracker_service.get(), account_tracker_service.get(),
account_consistency); account_consistency);
...@@ -220,8 +219,7 @@ IdentityTestEnvironment::BuildIdentityManagerForTests( ...@@ -220,8 +219,7 @@ IdentityTestEnvironment::BuildIdentityManagerForTests(
#if !defined(OS_CHROMEOS) #if !defined(OS_CHROMEOS)
primary_account_mutator = std::make_unique<PrimaryAccountMutatorImpl>( primary_account_mutator = std::make_unique<PrimaryAccountMutatorImpl>(
account_tracker_service.get(), account_tracker_service.get(), signin_manager.get(), pref_service);
static_cast<SigninManager*>(signin_manager.get()), pref_service);
#endif #endif
#if !defined(OS_ANDROID) && !defined(OS_IOS) #if !defined(OS_ANDROID) && !defined(OS_IOS)
......
...@@ -101,9 +101,7 @@ CoreAccountInfo SetPrimaryAccount(IdentityManager* identity_manager, ...@@ -101,9 +101,7 @@ CoreAccountInfo SetPrimaryAccount(IdentityManager* identity_manager,
// test-only API. // test-only API.
identity_manager->LegacySetPrimaryAccount(gaia_id, email); identity_manager->LegacySetPrimaryAccount(gaia_id, email);
#else #else
SigninManager* real_signin_manager = signin_manager->SignIn(email);
SigninManager::FromSigninManagerBase(signin_manager);
real_signin_manager->SignIn(email);
#endif #endif
DCHECK(signin_manager->IsAuthenticated()); DCHECK(signin_manager->IsAuthenticated());
...@@ -163,8 +161,7 @@ void ClearPrimaryAccount(IdentityManager* identity_manager, ...@@ -163,8 +161,7 @@ void ClearPrimaryAccount(IdentityManager* identity_manager,
TestIdentityManagerObserver signout_observer(identity_manager); TestIdentityManagerObserver signout_observer(identity_manager);
signout_observer.SetOnPrimaryAccountClearedCallback(run_loop.QuitClosure()); signout_observer.SetOnPrimaryAccountClearedCallback(run_loop.QuitClosure());
SigninManager* real_signin_manager = SigninManager::FromSigninManagerBase( SigninManagerBase* signin_manager = identity_manager->GetSigninManager();
identity_manager->GetSigninManager());
signin_metrics::ProfileSignout signout_source_metric = signin_metrics::ProfileSignout signout_source_metric =
signin_metrics::SIGNOUT_TEST; signin_metrics::SIGNOUT_TEST;
signin_metrics::SignoutDelete signout_delete_metric = signin_metrics::SignoutDelete signout_delete_metric =
...@@ -172,16 +169,15 @@ void ClearPrimaryAccount(IdentityManager* identity_manager, ...@@ -172,16 +169,15 @@ void ClearPrimaryAccount(IdentityManager* identity_manager,
switch (policy) { switch (policy) {
case ClearPrimaryAccountPolicy::DEFAULT: case ClearPrimaryAccountPolicy::DEFAULT:
real_signin_manager->SignOut(signout_source_metric, signin_manager->SignOut(signout_source_metric, signout_delete_metric);
signout_delete_metric);
break; break;
case ClearPrimaryAccountPolicy::KEEP_ALL_ACCOUNTS: case ClearPrimaryAccountPolicy::KEEP_ALL_ACCOUNTS:
real_signin_manager->SignOutAndKeepAllAccounts(signout_source_metric, signin_manager->SignOutAndKeepAllAccounts(signout_source_metric,
signout_delete_metric); signout_delete_metric);
break; break;
case ClearPrimaryAccountPolicy::REMOVE_ALL_ACCOUNTS: case ClearPrimaryAccountPolicy::REMOVE_ALL_ACCOUNTS:
real_signin_manager->SignOutAndRemoveAllAccounts(signout_source_metric, signin_manager->SignOutAndRemoveAllAccounts(signout_source_metric,
signout_delete_metric); signout_delete_metric);
break; break;
} }
......
...@@ -8,14 +8,14 @@ ...@@ -8,14 +8,14 @@
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
#include "components/signin/core/browser/account_tracker_service.h" #include "components/signin/core/browser/account_tracker_service.h"
#include "components/signin/core/browser/signin_manager.h" #include "components/signin/core/browser/signin_manager_base.h"
#include "components/signin/core/browser/signin_pref_names.h" #include "components/signin/core/browser/signin_pref_names.h"
namespace identity { namespace identity {
PrimaryAccountMutatorImpl::PrimaryAccountMutatorImpl( PrimaryAccountMutatorImpl::PrimaryAccountMutatorImpl(
AccountTrackerService* account_tracker, AccountTrackerService* account_tracker,
SigninManager* signin_manager, SigninManagerBase* signin_manager,
PrefService* pref_service) PrefService* pref_service)
: account_tracker_(account_tracker), : account_tracker_(account_tracker),
signin_manager_(signin_manager), signin_manager_(signin_manager),
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
class AccountTrackerService; class AccountTrackerService;
class PrefService; class PrefService;
class SigninManager; class SigninManagerBase;
namespace identity { namespace identity {
...@@ -18,7 +18,7 @@ namespace identity { ...@@ -18,7 +18,7 @@ namespace identity {
class PrimaryAccountMutatorImpl : public PrimaryAccountMutator { class PrimaryAccountMutatorImpl : public PrimaryAccountMutator {
public: public:
PrimaryAccountMutatorImpl(AccountTrackerService* account_tracker, PrimaryAccountMutatorImpl(AccountTrackerService* account_tracker,
SigninManager* signin_manager, SigninManagerBase* signin_manager,
PrefService* pref_service); PrefService* pref_service);
~PrimaryAccountMutatorImpl() override; ~PrimaryAccountMutatorImpl() override;
...@@ -33,7 +33,7 @@ class PrimaryAccountMutatorImpl : public PrimaryAccountMutator { ...@@ -33,7 +33,7 @@ class PrimaryAccountMutatorImpl : public PrimaryAccountMutator {
// Pointers to the services used by the PrimaryAccountMutatorImpl. They // Pointers to the services used by the PrimaryAccountMutatorImpl. They
// *must* outlive this instance. // *must* outlive this instance.
AccountTrackerService* account_tracker_ = nullptr; AccountTrackerService* account_tracker_ = nullptr;
SigninManager* signin_manager_ = nullptr; SigninManagerBase* signin_manager_ = nullptr;
PrefService* pref_service_ = nullptr; PrefService* pref_service_ = nullptr;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment