| Index: components/user_manager/user_manager.cc
|
| diff --git a/components/user_manager/user_manager.cc b/components/user_manager/user_manager.cc
|
| index 3cf3f267993afb3721fe6531127a583634d6c657..869b36644c38bf5c0295492efaefa76708dff868 100644
|
| --- a/components/user_manager/user_manager.cc
|
| +++ b/components/user_manager/user_manager.cc
|
| @@ -5,6 +5,8 @@
|
| #include "components/user_manager/user_manager.h"
|
|
|
| #include "base/logging.h"
|
| +#include "chromeos/login/user_names.h"
|
| +#include "components/signin/core/account_id/account_id.h"
|
|
|
| namespace user_manager {
|
|
|
| @@ -85,4 +87,27 @@ UserManager* UserManager::SetForTesting(UserManager* user_manager) {
|
| return previous_instance;
|
| }
|
|
|
| +// static
|
| +AccountId UserManager::GetKnownUserAccountId(const std::string& user_email,
|
| + const std::string& gaia_id) {
|
| + // In tests empty accounts are possible.
|
| + if (user_email.empty() && gaia_id.empty())
|
| + return EmptyAccountId();
|
| +
|
| + if (user_email == chromeos::login::kStubUser)
|
| + return chromeos::login::StubAccountId();
|
| +
|
| + if (user_email == chromeos::login::kGuestUserName)
|
| + return chromeos::login::GuestAccountId();
|
| +
|
| + UserManager* user_manager = Get();
|
| + if (user_manager)
|
| + return user_manager->GetKnownUserAccountIdImpl(user_email, gaia_id);
|
| +
|
| + // This is fallback for tests.
|
| + return (gaia_id.empty()
|
| + ? AccountId::FromUserEmail(user_email)
|
| + : AccountId::FromUserEmailGaiaId(user_email, gaia_id));
|
| +}
|
| +
|
| } // namespace user_manager
|
|
|