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

Side by Side Diff: chrome/browser/ui/webui/signin/user_manager_screen_handler.cc

Issue 1686833003: Remove HostDesktopType from profiles (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@metro-mode-16
Patch Set: desktop linux and mac Created 4 years, 10 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/ui/webui/signin/user_manager_screen_handler.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/signin/user_manager_screen_handler.h" 5 #include "chrome/browser/ui/webui/signin/user_manager_screen_handler.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 const char kJsApiUserManagerGetRemoveWarningDialogMessage[] = 96 const char kJsApiUserManagerGetRemoveWarningDialogMessage[] =
97 "getRemoveWarningDialogMessage"; 97 "getRemoveWarningDialogMessage";
98 const size_t kAvatarIconSize = 180; 98 const size_t kAvatarIconSize = 180;
99 const int kMaxOAuthRetries = 3; 99 const int kMaxOAuthRetries = 3;
100 100
101 void HandleAndDoNothing(const base::ListValue* args) { 101 void HandleAndDoNothing(const base::ListValue* args) {
102 } 102 }
103 103
104 // This callback is run if the only profile has been deleted, and a new 104 // This callback is run if the only profile has been deleted, and a new
105 // profile has been created to replace it. 105 // profile has been created to replace it.
106 void OpenNewWindowForProfile( 106 void OpenNewWindowForProfile(Profile* profile, Profile::CreateStatus status) {
107 chrome::HostDesktopType desktop_type,
108 Profile* profile,
109 Profile::CreateStatus status) {
110 if (status != Profile::CREATE_STATUS_INITIALIZED) 107 if (status != Profile::CREATE_STATUS_INITIALIZED)
111 return; 108 return;
112 profiles::FindOrCreateNewWindowForProfile( 109 profiles::FindOrCreateNewWindowForProfile(
113 profile, 110 profile, chrome::startup::IS_PROCESS_STARTUP,
114 chrome::startup::IS_PROCESS_STARTUP, 111 chrome::startup::IS_FIRST_RUN, false);
115 chrome::startup::IS_FIRST_RUN,
116 desktop_type,
117 false);
118 } 112 }
119 113
120 std::string GetAvatarImageAtIndex( 114 std::string GetAvatarImageAtIndex(
121 size_t index, ProfileInfoCache* info_cache) { 115 size_t index, ProfileInfoCache* info_cache) {
122 bool is_gaia_picture = 116 bool is_gaia_picture =
123 info_cache->IsUsingGAIAPictureOfProfileAtIndex(index) && 117 info_cache->IsUsingGAIAPictureOfProfileAtIndex(index) &&
124 info_cache->GetGAIAPictureOfProfileAtIndex(index); 118 info_cache->GetGAIAPictureOfProfileAtIndex(index);
125 119
126 // If the avatar is too small (i.e. the old-style low resolution avatar), 120 // If the avatar is too small (i.e. the old-style low resolution avatar),
127 // it will be pixelated when displayed in the User Manager, so we should 121 // it will be pixelated when displayed in the User Manager, so we should
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 ~UrlHashHelper() override; 162 ~UrlHashHelper() override;
169 163
170 void ExecuteUrlHash(); 164 void ExecuteUrlHash();
171 165
172 // chrome::BrowserListObserver overrides: 166 // chrome::BrowserListObserver overrides:
173 void OnBrowserRemoved(Browser* browser) override; 167 void OnBrowserRemoved(Browser* browser) override;
174 168
175 private: 169 private:
176 Browser* browser_; 170 Browser* browser_;
177 Profile* profile_; 171 Profile* profile_;
178 chrome::HostDesktopType desktop_type_;
179 std::string hash_; 172 std::string hash_;
180 173
181 DISALLOW_COPY_AND_ASSIGN(UrlHashHelper); 174 DISALLOW_COPY_AND_ASSIGN(UrlHashHelper);
182 }; 175 };
183 176
184 UrlHashHelper::UrlHashHelper(Browser* browser, const std::string& hash) 177 UrlHashHelper::UrlHashHelper(Browser* browser, const std::string& hash)
185 : browser_(browser), 178 : browser_(browser),
186 profile_(browser->profile()), 179 profile_(browser->profile()),
187 desktop_type_(browser->host_desktop_type()),
188 hash_(hash) { 180 hash_(hash) {
189 BrowserList::AddObserver(this); 181 BrowserList::AddObserver(this);
190 } 182 }
191 183
192 UrlHashHelper::~UrlHashHelper() { 184 UrlHashHelper::~UrlHashHelper() {
193 BrowserList::RemoveObserver(this); 185 BrowserList::RemoveObserver(this);
194 } 186 }
195 187
196 void UrlHashHelper::OnBrowserRemoved(Browser* browser) { 188 void UrlHashHelper::OnBrowserRemoved(Browser* browser) {
197 if (browser == browser_) 189 if (browser == browser_)
198 browser_ = nullptr; 190 browser_ = nullptr;
199 } 191 }
200 192
201 void UrlHashHelper::ExecuteUrlHash() { 193 void UrlHashHelper::ExecuteUrlHash() {
202 if (hash_ == profiles::kUserManagerSelectProfileAppLauncher) { 194 if (hash_ == profiles::kUserManagerSelectProfileAppLauncher) {
203 AppListService* app_list_service = AppListService::Get(desktop_type_); 195 AppListService* app_list_service =
196 AppListService::Get(chrome::HOST_DESKTOP_TYPE_NATIVE);
204 app_list_service->ShowForProfile(profile_); 197 app_list_service->ShowForProfile(profile_);
205 return; 198 return;
206 } 199 }
207 200
208 Browser* target_browser = browser_; 201 Browser* target_browser = browser_;
209 if (!target_browser) { 202 if (!target_browser) {
210 target_browser = chrome::FindLastActiveWithProfile(profile_); 203 target_browser = chrome::FindLastActiveWithProfile(profile_);
211 if (!target_browser) 204 if (!target_browser)
212 return; 205 return;
213 } 206 }
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 287
295 ProfileManager* profile_manager_; 288 ProfileManager* profile_manager_;
296 289
297 UserManagerScreenHandler* user_manager_handler_; // Weak; owns us. 290 UserManagerScreenHandler* user_manager_handler_; // Weak; owns us.
298 291
299 DISALLOW_COPY_AND_ASSIGN(ProfileUpdateObserver); 292 DISALLOW_COPY_AND_ASSIGN(ProfileUpdateObserver);
300 }; 293 };
301 294
302 // UserManagerScreenHandler --------------------------------------------------- 295 // UserManagerScreenHandler ---------------------------------------------------
303 296
304 UserManagerScreenHandler::UserManagerScreenHandler() 297 UserManagerScreenHandler::UserManagerScreenHandler() : weak_ptr_factory_(this) {
305 : desktop_type_(chrome::GetActiveDesktop()),
306 weak_ptr_factory_(this) {
307 profileInfoCacheObserver_.reset( 298 profileInfoCacheObserver_.reset(
308 new UserManagerScreenHandler::ProfileUpdateObserver( 299 new UserManagerScreenHandler::ProfileUpdateObserver(
309 g_browser_process->profile_manager(), this)); 300 g_browser_process->profile_manager(), this));
310 } 301 }
311 302
312 UserManagerScreenHandler::~UserManagerScreenHandler() { 303 UserManagerScreenHandler::~UserManagerScreenHandler() {
313 proximity_auth::ScreenlockBridge::Get()->SetLockHandler(NULL); 304 proximity_auth::ScreenlockBridge::Get()->SetLockHandler(NULL);
314 } 305 }
315 306
316 void UserManagerScreenHandler::ShowBannerMessage( 307 void UserManagerScreenHandler::ShowBannerMessage(
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 } 378 }
388 379
389 void UserManagerScreenHandler::HandleInitialize(const base::ListValue* args) { 380 void UserManagerScreenHandler::HandleInitialize(const base::ListValue* args) {
390 // If the URL has a hash parameter, store it for later. 381 // If the URL has a hash parameter, store it for later.
391 args->GetString(0, &url_hash_); 382 args->GetString(0, &url_hash_);
392 383
393 SendUserList(); 384 SendUserList();
394 web_ui()->CallJavascriptFunction("cr.ui.Oobe.showUserManagerScreen", 385 web_ui()->CallJavascriptFunction("cr.ui.Oobe.showUserManagerScreen",
395 base::FundamentalValue(IsGuestModeEnabled()), 386 base::FundamentalValue(IsGuestModeEnabled()),
396 base::FundamentalValue(IsAddPersonEnabled())); 387 base::FundamentalValue(IsAddPersonEnabled()));
397 desktop_type_ = chrome::GetHostDesktopTypeForNativeView(
398 web_ui()->GetWebContents()->GetNativeView());
399 388
400 proximity_auth::ScreenlockBridge::Get()->SetLockHandler(this); 389 proximity_auth::ScreenlockBridge::Get()->SetLockHandler(this);
401 } 390 }
402 391
403 void UserManagerScreenHandler::HandleAddUser(const base::ListValue* args) { 392 void UserManagerScreenHandler::HandleAddUser(const base::ListValue* args) {
404 if (!IsAddPersonEnabled()) { 393 if (!IsAddPersonEnabled()) {
405 // The 'Add User' UI should not be showing. 394 // The 'Add User' UI should not be showing.
406 NOTREACHED(); 395 NOTREACHED();
407 return; 396 return;
408 } 397 }
409 profiles::CreateAndSwitchToNewProfile( 398 profiles::CreateAndSwitchToNewProfile(
410 desktop_type_,
411 base::Bind(&UserManagerScreenHandler::OnSwitchToProfileComplete, 399 base::Bind(&UserManagerScreenHandler::OnSwitchToProfileComplete,
412 weak_ptr_factory_.GetWeakPtr()), 400 weak_ptr_factory_.GetWeakPtr()),
413 ProfileMetrics::ADD_NEW_USER_MANAGER); 401 ProfileMetrics::ADD_NEW_USER_MANAGER);
414 } 402 }
415 403
416 void UserManagerScreenHandler::HandleAuthenticatedLaunchUser( 404 void UserManagerScreenHandler::HandleAuthenticatedLaunchUser(
417 const base::ListValue* args) { 405 const base::ListValue* args) {
418 const base::Value* profile_path_value; 406 const base::Value* profile_path_value;
419 if (!args->Get(0, &profile_path_value)) 407 if (!args->Get(0, &profile_path_value))
420 return; 408 return;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 NOTREACHED(); 476 NOTREACHED();
489 return; 477 return;
490 } 478 }
491 479
492 if (!profiles::IsMultipleProfilesEnabled()) { 480 if (!profiles::IsMultipleProfilesEnabled()) {
493 NOTREACHED(); 481 NOTREACHED();
494 return; 482 return;
495 } 483 }
496 484
497 g_browser_process->profile_manager()->ScheduleProfileForDeletion( 485 g_browser_process->profile_manager()->ScheduleProfileForDeletion(
498 profile_path, 486 profile_path, base::Bind(&OpenNewWindowForProfile));
499 base::Bind(&OpenNewWindowForProfile, desktop_type_));
500 ProfileMetrics::LogProfileDeleteUser( 487 ProfileMetrics::LogProfileDeleteUser(
501 ProfileMetrics::DELETE_PROFILE_USER_MANAGER); 488 ProfileMetrics::DELETE_PROFILE_USER_MANAGER);
502 } 489 }
503 490
504 void UserManagerScreenHandler::HandleLaunchGuest(const base::ListValue* args) { 491 void UserManagerScreenHandler::HandleLaunchGuest(const base::ListValue* args) {
505 if (IsGuestModeEnabled()) { 492 if (IsGuestModeEnabled()) {
506 profiles::SwitchToGuestProfile( 493 profiles::SwitchToGuestProfile(
507 desktop_type_,
508 base::Bind(&UserManagerScreenHandler::OnSwitchToProfileComplete, 494 base::Bind(&UserManagerScreenHandler::OnSwitchToProfileComplete,
509 weak_ptr_factory_.GetWeakPtr())); 495 weak_ptr_factory_.GetWeakPtr()));
510 } else { 496 } else {
511 // The UI should have prevented the user from allowing the selection of 497 // The UI should have prevented the user from allowing the selection of
512 // guest mode. 498 // guest mode.
513 NOTREACHED(); 499 NOTREACHED();
514 } 500 }
515 } 501 }
516 502
517 void UserManagerScreenHandler::HandleLaunchUser(const base::ListValue* args) { 503 void UserManagerScreenHandler::HandleLaunchUser(const base::ListValue* args) {
(...skipping 17 matching lines...) Expand all
535 // It's possible that a user breaks into the user-manager page using the 521 // It's possible that a user breaks into the user-manager page using the
536 // JavaScript Inspector and causes a "locked" profile to call this 522 // JavaScript Inspector and causes a "locked" profile to call this
537 // unauthenticated version of "launch" instead of the proper one. Thus, 523 // unauthenticated version of "launch" instead of the proper one. Thus,
538 // we have to validate in (secure) C++ code that it really is a profile 524 // we have to validate in (secure) C++ code that it really is a profile
539 // not needing authentication. If it is, just ignore the "launch" request. 525 // not needing authentication. If it is, just ignore the "launch" request.
540 if (info_cache.ProfileIsSigninRequiredAtIndex(profile_index)) 526 if (info_cache.ProfileIsSigninRequiredAtIndex(profile_index))
541 return; 527 return;
542 ProfileMetrics::LogProfileAuthResult(ProfileMetrics::AUTH_UNNECESSARY); 528 ProfileMetrics::LogProfileAuthResult(ProfileMetrics::AUTH_UNNECESSARY);
543 529
544 profiles::SwitchToProfile( 530 profiles::SwitchToProfile(
545 profile_path, 531 profile_path, false, /* reuse any existing windows */
546 desktop_type_,
547 false, /* reuse any existing windows */
548 base::Bind(&UserManagerScreenHandler::OnSwitchToProfileComplete, 532 base::Bind(&UserManagerScreenHandler::OnSwitchToProfileComplete,
549 weak_ptr_factory_.GetWeakPtr()), 533 weak_ptr_factory_.GetWeakPtr()),
550 ProfileMetrics::SWITCH_PROFILE_MANAGER); 534 ProfileMetrics::SWITCH_PROFILE_MANAGER);
551 } 535 }
552 536
553 void UserManagerScreenHandler::HandleAttemptUnlock( 537 void UserManagerScreenHandler::HandleAttemptUnlock(
554 const base::ListValue* args) { 538 const base::ListValue* args) {
555 std::string email; 539 std::string email;
556 CHECK(args->GetString(0, &email)); 540 CHECK(args->GetString(0, &email));
557 GetScreenlockRouter(email) 541 GetScreenlockRouter(email)
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
939 } 923 }
940 924
941 void UserManagerScreenHandler::ReportAuthenticationResult( 925 void UserManagerScreenHandler::ReportAuthenticationResult(
942 bool success, 926 bool success,
943 ProfileMetrics::ProfileAuth auth) { 927 ProfileMetrics::ProfileAuth auth) {
944 ProfileMetrics::LogProfileAuthResult(auth); 928 ProfileMetrics::LogProfileAuthResult(auth);
945 email_address_.clear(); 929 email_address_.clear();
946 930
947 if (success) { 931 if (success) {
948 profiles::SwitchToProfile( 932 profiles::SwitchToProfile(
949 authenticating_profile_path_, 933 authenticating_profile_path_, true,
950 desktop_type_,
951 true,
952 base::Bind(&UserManagerScreenHandler::OnSwitchToProfileComplete, 934 base::Bind(&UserManagerScreenHandler::OnSwitchToProfileComplete,
953 weak_ptr_factory_.GetWeakPtr()), 935 weak_ptr_factory_.GetWeakPtr()),
954 ProfileMetrics::SWITCH_PROFILE_UNLOCK); 936 ProfileMetrics::SWITCH_PROFILE_UNLOCK);
955 } else { 937 } else {
956 web_ui()->CallJavascriptFunction( 938 web_ui()->CallJavascriptFunction(
957 "cr.ui.Oobe.showSignInError", 939 "cr.ui.Oobe.showSignInError",
958 base::FundamentalValue(0), 940 base::FundamentalValue(0),
959 base::StringValue(l10n_util::GetStringUTF8( 941 base::StringValue(l10n_util::GetStringUTF8(
960 auth == ProfileMetrics::AUTH_FAILED_OFFLINE ? 942 auth == ProfileMetrics::AUTH_FAILED_OFFLINE ?
961 IDS_LOGIN_ERROR_AUTHENTICATING_OFFLINE : 943 IDS_LOGIN_ERROR_AUTHENTICATING_OFFLINE :
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1016 Profile* profile, Profile::CreateStatus profile_create_status) { 998 Profile* profile, Profile::CreateStatus profile_create_status) {
1017 Browser* browser = chrome::FindAnyBrowser(profile, false); 999 Browser* browser = chrome::FindAnyBrowser(profile, false);
1018 if (browser && browser->window()) { 1000 if (browser && browser->window()) {
1019 OnBrowserWindowReady(browser); 1001 OnBrowserWindowReady(browser);
1020 } else { 1002 } else {
1021 registrar_.Add(this, 1003 registrar_.Add(this,
1022 chrome::NOTIFICATION_BROWSER_WINDOW_READY, 1004 chrome::NOTIFICATION_BROWSER_WINDOW_READY,
1023 content::NotificationService::AllSources()); 1005 content::NotificationService::AllSources());
1024 } 1006 }
1025 } 1007 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/signin/user_manager_screen_handler.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698