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

Side by Side Diff: chrome/browser/ui/webui/sync_setup_handler.cc

Issue 479353003: Add IsAuthenticated() method to SigninManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address review comments Created 6 years, 3 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/sync_setup_handler.h" 5 #include "chrome/browser/ui/webui/sync_setup_handler.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 { "fullEncryptionOption", IDS_SYNC_FULL_ENCRYPTION_DATA }, 303 { "fullEncryptionOption", IDS_SYNC_FULL_ENCRYPTION_DATA },
304 }; 304 };
305 305
306 RegisterStrings(localized_strings, resources, arraysize(resources)); 306 RegisterStrings(localized_strings, resources, arraysize(resources));
307 RegisterTitle(localized_strings, "syncSetupOverlay", IDS_SYNC_SETUP_TITLE); 307 RegisterTitle(localized_strings, "syncSetupOverlay", IDS_SYNC_SETUP_TITLE);
308 } 308 }
309 309
310 void SyncSetupHandler::DisplayConfigureSync(bool show_advanced, 310 void SyncSetupHandler::DisplayConfigureSync(bool show_advanced,
311 bool passphrase_failed) { 311 bool passphrase_failed) {
312 // Should never call this when we are not signed in. 312 // Should never call this when we are not signed in.
313 DCHECK(!SigninManagerFactory::GetForProfile( 313 DCHECK(SigninManagerFactory::GetForProfile(
314 GetProfile())->GetAuthenticatedUsername().empty()); 314 GetProfile())->IsAuthenticated());
315 ProfileSyncService* service = GetSyncService(); 315 ProfileSyncService* service = GetSyncService();
316 DCHECK(service); 316 DCHECK(service);
317 if (!service->sync_initialized()) { 317 if (!service->sync_initialized()) {
318 service->UnsuppressAndStart(); 318 service->UnsuppressAndStart();
319 319
320 // See if it's even possible to bring up the sync backend - if not 320 // See if it's even possible to bring up the sync backend - if not
321 // (unrecoverable error?), don't bother displaying a spinner that will be 321 // (unrecoverable error?), don't bother displaying a spinner that will be
322 // immediately closed because this leads to some ugly infinite UI loop (see 322 // immediately closed because this leads to some ugly infinite UI loop (see
323 // http://crbug.com/244769). 323 // http://crbug.com/244769).
324 if (SyncStartupTracker::GetSyncServiceState(GetProfile()) != 324 if (SyncStartupTracker::GetSyncServiceState(GetProfile()) !=
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 if (!browser) { 513 if (!browser) {
514 // Settings is not displayed in a browser window. Open a new window. 514 // Settings is not displayed in a browser window. Open a new window.
515 browser = new Browser(Browser::CreateParams( 515 browser = new Browser(Browser::CreateParams(
516 Browser::TYPE_TABBED, GetProfile(), chrome::GetActiveDesktop())); 516 Browser::TYPE_TABBED, GetProfile(), chrome::GetActiveDesktop()));
517 } 517 }
518 518
519 // If the signin manager already has an authenticated username, this is a 519 // If the signin manager already has an authenticated username, this is a
520 // re-auth scenario, and we need to ensure that the user signs in with the 520 // re-auth scenario, and we need to ensure that the user signs in with the
521 // same email address. 521 // same email address.
522 GURL url; 522 GURL url;
523 std::string email = SigninManagerFactory::GetForProfile( 523 if (SigninManagerFactory::GetForProfile(
524 browser->profile())->GetAuthenticatedUsername(); 524 browser->profile())->IsAuthenticated()) {
525 if (!email.empty()) {
526 UMA_HISTOGRAM_ENUMERATION("Signin.Reauth", 525 UMA_HISTOGRAM_ENUMERATION("Signin.Reauth",
527 signin::HISTOGRAM_SHOWN, 526 signin::HISTOGRAM_SHOWN,
528 signin::HISTOGRAM_MAX); 527 signin::HISTOGRAM_MAX);
529 528
530 SigninErrorController* error_controller = 529 SigninErrorController* error_controller =
531 ProfileOAuth2TokenServiceFactory::GetForProfile(browser->profile())-> 530 ProfileOAuth2TokenServiceFactory::GetForProfile(browser->profile())->
532 signin_error_controller(); 531 signin_error_controller();
533 DCHECK(error_controller->HasError()); 532 DCHECK(error_controller->HasError());
534 if (switches::IsNewAvatarMenu()) { 533 if (switches::IsNewAvatarMenu()) {
535 browser->window()->ShowAvatarBubbleFromAvatarButton( 534 browser->window()->ShowAvatarBubbleFromAvatarButton(
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
761 760
762 void SyncSetupHandler::HandleShowSetupUI(const base::ListValue* args) { 761 void SyncSetupHandler::HandleShowSetupUI(const base::ListValue* args) {
763 if (!GetSyncService()) { 762 if (!GetSyncService()) {
764 DLOG(WARNING) << "Cannot display sync UI when sync is disabled"; 763 DLOG(WARNING) << "Cannot display sync UI when sync is disabled";
765 CloseUI(); 764 CloseUI();
766 return; 765 return;
767 } 766 }
768 767
769 SigninManagerBase* signin = 768 SigninManagerBase* signin =
770 SigninManagerFactory::GetForProfile(GetProfile()); 769 SigninManagerFactory::GetForProfile(GetProfile());
771 if (signin->GetAuthenticatedUsername().empty()) { 770 if (!signin->IsAuthenticated()) {
772 // For web-based signin, the signin page is not displayed in an overlay 771 // For web-based signin, the signin page is not displayed in an overlay
773 // on the settings page. So if we get here, it must be due to the user 772 // on the settings page. So if we get here, it must be due to the user
774 // cancelling signin (by reloading the sync settings page during initial 773 // cancelling signin (by reloading the sync settings page during initial
775 // signin) or by directly navigating to settings/syncSetup 774 // signin) or by directly navigating to settings/syncSetup
776 // (http://crbug.com/229836). So just exit and go back to the settings page. 775 // (http://crbug.com/229836). So just exit and go back to the settings page.
777 DLOG(WARNING) << "Cannot display sync setup UI when not signed in"; 776 DLOG(WARNING) << "Cannot display sync setup UI when not signed in";
778 CloseUI(); 777 CloseUI();
779 return; 778 return;
780 } 779 }
781 780
(...skipping 17 matching lines...) Expand all
799 // the user goes through the real signin flow to generate a new auth token. 798 // the user goes through the real signin flow to generate a new auth token.
800 void SyncSetupHandler::HandleDoSignOutOnAuthError(const base::ListValue* args) { 799 void SyncSetupHandler::HandleDoSignOutOnAuthError(const base::ListValue* args) {
801 DVLOG(1) << "Signing out the user to fix a sync error."; 800 DVLOG(1) << "Signing out the user to fix a sync error.";
802 chrome::AttemptUserExit(); 801 chrome::AttemptUserExit();
803 } 802 }
804 #endif 803 #endif
805 804
806 #if !defined(OS_CHROMEOS) 805 #if !defined(OS_CHROMEOS)
807 void SyncSetupHandler::HandleStartSignin(const base::ListValue* args) { 806 void SyncSetupHandler::HandleStartSignin(const base::ListValue* args) {
808 // Should only be called if the user is not already signed in. 807 // Should only be called if the user is not already signed in.
809 DCHECK(SigninManagerFactory::GetForProfile(GetProfile())-> 808 DCHECK(!SigninManagerFactory::GetForProfile(GetProfile())->
810 GetAuthenticatedUsername().empty()); 809 IsAuthenticated());
811 OpenSyncSetup(); 810 OpenSyncSetup();
812 } 811 }
813 812
814 void SyncSetupHandler::HandleStopSyncing(const base::ListValue* args) { 813 void SyncSetupHandler::HandleStopSyncing(const base::ListValue* args) {
815 if (GetSyncService()) 814 if (GetSyncService())
816 ProfileSyncService::SyncEvent(ProfileSyncService::STOP_FROM_OPTIONS); 815 ProfileSyncService::SyncEvent(ProfileSyncService::STOP_FROM_OPTIONS);
817 SigninManagerFactory::GetForProfile(GetProfile())->SignOut( 816 SigninManagerFactory::GetForProfile(GetProfile())->SignOut(
818 signin_metrics::USER_CLICKED_SIGNOUT_SETTINGS); 817 signin_metrics::USER_CLICKED_SIGNOUT_SETTINGS);
819 818
820 bool delete_profile = false; 819 bool delete_profile = false;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
879 878
880 configuring_sync_ = false; 879 configuring_sync_ = false;
881 } 880 }
882 881
883 void SyncSetupHandler::OpenSyncSetup() { 882 void SyncSetupHandler::OpenSyncSetup() {
884 if (!PrepareSyncSetup()) 883 if (!PrepareSyncSetup())
885 return; 884 return;
886 885
887 // There are several different UI flows that can bring the user here: 886 // There are several different UI flows that can bring the user here:
888 // 1) Signin promo. 887 // 1) Signin promo.
889 // 2) Normal signin through settings page (GetAuthenticatedUsername() is 888 // 2) Normal signin through settings page (IsAuthenticated() is false).
890 // empty).
891 // 3) Previously working credentials have expired. 889 // 3) Previously working credentials have expired.
892 // 4) User is signed in, but has stopped sync via the google dashboard, and 890 // 4) User is signed in, but has stopped sync via the google dashboard, and
893 // signout is prohibited by policy so we need to force a re-auth. 891 // signout is prohibited by policy so we need to force a re-auth.
894 // 5) User clicks [Advanced Settings] button on options page while already 892 // 5) User clicks [Advanced Settings] button on options page while already
895 // logged in. 893 // logged in.
896 // 6) One-click signin (credentials are already available, so should display 894 // 6) One-click signin (credentials are already available, so should display
897 // sync configure UI, not login UI). 895 // sync configure UI, not login UI).
898 // 7) User re-enables sync after disabling it via advanced settings. 896 // 7) User re-enables sync after disabling it via advanced settings.
899 #if !defined(OS_CHROMEOS) 897 #if !defined(OS_CHROMEOS)
900 SigninManagerBase* signin = 898 SigninManagerBase* signin =
901 SigninManagerFactory::GetForProfile(GetProfile()); 899 SigninManagerFactory::GetForProfile(GetProfile());
902 900
903 if (signin->GetAuthenticatedUsername().empty() || 901 if (!signin->IsAuthenticated() ||
904 ProfileOAuth2TokenServiceFactory::GetForProfile(GetProfile())-> 902 ProfileOAuth2TokenServiceFactory::GetForProfile(GetProfile())->
905 signin_error_controller()->HasError()) { 903 signin_error_controller()->HasError()) {
906 // User is not logged in (cases 1-2), or login has been specially requested 904 // User is not logged in (cases 1-2), or login has been specially requested
907 // because previously working credentials have expired (case 3). Close sync 905 // because previously working credentials have expired (case 3). Close sync
908 // setup including any visible overlays, and display the gaia auth page. 906 // setup including any visible overlays, and display the gaia auth page.
909 // Control will be returned to the sync settings page once auth is complete. 907 // Control will be returned to the sync settings page once auth is complete.
910 CloseUI(); 908 CloseUI();
911 DisplayGaiaLogin(); 909 DisplayGaiaLogin();
912 return; 910 return;
913 } 911 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
957 955
958 LoginUIService* service = GetLoginUIService(); 956 LoginUIService* service = GetLoginUIService();
959 DCHECK(service); 957 DCHECK(service);
960 service->current_login_ui()->FocusUI(); 958 service->current_login_ui()->FocusUI();
961 return true; 959 return true;
962 } 960 }
963 961
964 LoginUIService* SyncSetupHandler::GetLoginUIService() const { 962 LoginUIService* SyncSetupHandler::GetLoginUIService() const {
965 return LoginUIServiceFactory::GetForProfile(GetProfile()); 963 return LoginUIServiceFactory::GetForProfile(GetProfile());
966 } 964 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698