Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4519)

Unified Diff: chrome/browser/ui/webui/signin/user_manager_screen_handler.cc

Issue 840673004: The User Manager needs to use profile paths not display names for profile switching (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/user_manager/user_manager.js ('k') | ui/login/account_picker/user_pod_row.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
diff --git a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
index dbdbbcf254c15396b229e29dbd4b687aaf7bc693..495ced672326eae207fde67c60780cd32671df38 100644
--- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
+++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
@@ -111,26 +111,21 @@ std::string GetAvatarImageAtIndex(
return webui::GetBitmapDataUrl(resized_image.AsBitmap());
}
-size_t GetIndexOfProfileWithEmailAndName(const ProfileInfoCache& info_cache,
- const base::string16& email,
- const base::string16& name) {
+size_t GetIndexOfProfileWithEmail(const ProfileInfoCache& info_cache,
+ const base::string16& email) {
Mike Lerman 2015/01/13 19:55:41 Optional simpliciation: Change the email parameter
noms (inactive) 2015/01/13 21:36:42 Done.
for (size_t i = 0; i < info_cache.GetNumberOfProfiles(); ++i) {
- if (info_cache.GetUserNameOfProfileAtIndex(i) == email &&
- (name.empty() ||
- profiles::GetAvatarNameForProfile(
- info_cache.GetPathOfProfileAtIndex(i)) == name)) {
+ if (info_cache.GetUserNameOfProfileAtIndex(i) == email)
return i;
- }
}
return std::string::npos;
}
extensions::ScreenlockPrivateEventRouter* GetScreenlockRouter(
const std::string& email) {
- ProfileInfoCache& info_cache =
+ const ProfileInfoCache& info_cache =
g_browser_process->profile_manager()->GetProfileInfoCache();
- const size_t profile_index = GetIndexOfProfileWithEmailAndName(
- info_cache, base::UTF8ToUTF16(email), base::string16());
+ const size_t profile_index = GetIndexOfProfileWithEmail(
+ info_cache, base::UTF8ToUTF16(email));
Profile* profile = g_browser_process->profile_manager()
->GetProfileByPath(info_cache.GetPathOfProfileAtIndex(profile_index));
return extensions::ScreenlockPrivateEventRouter::GetFactoryInstance()->Get(
@@ -275,10 +270,10 @@ ScreenlockBridge::LockHandler::AuthType UserManagerScreenHandler::GetAuthType(
}
void UserManagerScreenHandler::Unlock(const std::string& user_email) {
- ProfileInfoCache& info_cache =
+ const ProfileInfoCache& info_cache =
g_browser_process->profile_manager()->GetProfileInfoCache();
- const size_t profile_index = GetIndexOfProfileWithEmailAndName(
- info_cache, base::UTF8ToUTF16(user_email), base::string16());
+ const size_t profile_index = GetIndexOfProfileWithEmail(
+ info_cache, base::UTF8ToUTF16(user_email));
DCHECK_LT(profile_index, info_cache.GetNumberOfProfiles());
authenticating_profile_index_ = profile_index;
@@ -321,23 +316,28 @@ void UserManagerScreenHandler::HandleAddUser(const base::ListValue* args) {
void UserManagerScreenHandler::HandleAuthenticatedLaunchUser(
const base::ListValue* args) {
- base::string16 email_address;
- if (!args->GetString(0, &email_address))
+
Mike Lerman 2015/01/13 19:55:41 nit: Remove empty line.
noms (inactive) 2015/01/13 21:36:42 Done.
+ const base::Value* profile_path_value;
+ if (!args->Get(0, &profile_path_value))
return;
- base::string16 display_name;
- if (!args->GetString(1, &display_name))
+ base::FilePath profile_path;
+ if (!base::GetValueAsFilePath(*profile_path_value, &profile_path))
+ return;
+
+ base::string16 email_address;
+ if (!args->GetString(1, &email_address))
return;
std::string password;
if (!args->GetString(2, &password))
return;
- ProfileInfoCache& info_cache =
+ const ProfileInfoCache& info_cache =
g_browser_process->profile_manager()->GetProfileInfoCache();
- size_t profile_index = GetIndexOfProfileWithEmailAndName(
- info_cache, email_address, display_name);
- if (profile_index >= info_cache.GetNumberOfProfiles()) {
+ size_t profile_index = info_cache.GetIndexOfProfileWithPath(profile_path);
+
+ if (profile_index == std::string::npos) {
NOTREACHED();
return;
}
@@ -351,10 +351,9 @@ void UserManagerScreenHandler::HandleAuthenticatedLaunchUser(
this,
GaiaConstants::kChromeSource,
web_ui()->GetWebContents()->GetBrowserContext()->GetRequestContext()));
- std::string email_string;
- args->GetString(0, &email_string);
+
client_login_->StartClientLogin(
- email_string,
+ base::UTF16ToUTF8(email_address),
password,
GaiaConstants::kSyncService,
std::string(),
@@ -408,21 +407,19 @@ void UserManagerScreenHandler::HandleLaunchGuest(const base::ListValue* args) {
}
void UserManagerScreenHandler::HandleLaunchUser(const base::ListValue* args) {
- base::string16 email_address;
- base::string16 display_name;
+ const base::Value* profile_path_value;
Mike Lerman 2015/01/13 19:55:41 nit: Initialize profile_path_value to NULL (or nul
noms (inactive) 2015/01/13 21:36:42 Done.
+ if (!args->Get(0, &profile_path_value))
+ return;
- if (!args->GetString(0, &email_address) ||
- !args->GetString(1, &display_name)) {
- NOTREACHED();
+ base::FilePath profile_path;
+ if (!base::GetValueAsFilePath(*profile_path_value, &profile_path))
return;
- }
- ProfileInfoCache& info_cache =
+ const ProfileInfoCache& info_cache =
g_browser_process->profile_manager()->GetProfileInfoCache();
- size_t profile_index = GetIndexOfProfileWithEmailAndName(
- info_cache, email_address, display_name);
+ size_t profile_index = info_cache.GetIndexOfProfileWithPath(profile_path);
- if (profile_index >= info_cache.GetNumberOfProfiles()) {
+ if (profile_index == std::string::npos) {
NOTREACHED();
return;
}
@@ -436,9 +433,8 @@ void UserManagerScreenHandler::HandleLaunchUser(const base::ListValue* args) {
return;
ProfileMetrics::LogProfileAuthResult(ProfileMetrics::AUTH_UNNECESSARY);
- base::FilePath path = info_cache.GetPathOfProfileAtIndex(profile_index);
profiles::SwitchToProfile(
- path,
+ profile_path,
desktop_type_,
false, /* reuse any existing windows */
base::Bind(&UserManagerScreenHandler::OnSwitchToProfileComplete,
@@ -700,7 +696,7 @@ void UserManagerScreenHandler::ReportAuthenticationResult(
password_attempt_.clear();
if (success) {
- ProfileInfoCache& info_cache =
+ const ProfileInfoCache& info_cache =
g_browser_process->profile_manager()->GetProfileInfoCache();
base::FilePath path = info_cache.GetPathOfProfileAtIndex(
authenticating_profile_index_);
« no previous file with comments | « chrome/browser/resources/user_manager/user_manager.js ('k') | ui/login/account_picker/user_pod_row.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698