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

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

Issue 10192005: Refactor LoginUIService to not rely on WebUI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 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/bind.h" 7 #include "base/bind.h"
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 // We're done configuring, so notify ProfileSyncService that it is OK to 414 // We're done configuring, so notify ProfileSyncService that it is OK to
415 // start syncing. 415 // start syncing.
416 service->SetSyncSetupCompleted(); 416 service->SetSyncSetupCompleted();
417 } 417 }
418 } 418 }
419 419
420 bool SyncSetupHandler::IsActiveLogin() const { 420 bool SyncSetupHandler::IsActiveLogin() const {
421 // LoginUIService can be NULL if page is brought up in incognito mode 421 // LoginUIService can be NULL if page is brought up in incognito mode
422 // (i.e. if the user is running in guest mode in cros and brings up settings). 422 // (i.e. if the user is running in guest mode in cros and brings up settings).
423 LoginUIService* service = GetLoginUIService(); 423 LoginUIService* service = GetLoginUIService();
424 return service && (service->current_login_ui() == web_ui()); 424 return service && (service->current_login_ui() == this);
425 } 425 }
426 426
427 void SyncSetupHandler::RegisterMessages() { 427 void SyncSetupHandler::RegisterMessages() {
428 web_ui()->RegisterMessageCallback( 428 web_ui()->RegisterMessageCallback(
429 "SyncSetupDidClosePage", 429 "SyncSetupDidClosePage",
430 base::Bind(&SyncSetupHandler::OnDidClosePage, 430 base::Bind(&SyncSetupHandler::OnDidClosePage,
431 base::Unretained(this))); 431 base::Unretained(this)));
432 web_ui()->RegisterMessageCallback( 432 web_ui()->RegisterMessageCallback(
433 "SyncSetupSubmitAuth", 433 "SyncSetupSubmitAuth",
434 base::Bind(&SyncSetupHandler::HandleSubmitAuth, 434 base::Bind(&SyncSetupHandler::HandleSubmitAuth,
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 DCHECK(service); 749 DCHECK(service);
750 750
751 #if defined(OS_CHROMEOS) 751 #if defined(OS_CHROMEOS)
752 if (service->GetAuthError().state() != GoogleServiceAuthError::NONE) { 752 if (service->GetAuthError().state() != GoogleServiceAuthError::NONE) {
753 DLOG(INFO) << "Signing out the user to fix a sync error."; 753 DLOG(INFO) << "Signing out the user to fix a sync error.";
754 BrowserList::GetLastActive()->ExecuteCommand(IDC_EXIT); 754 BrowserList::GetLastActive()->ExecuteCommand(IDC_EXIT);
755 return; 755 return;
756 } 756 }
757 #endif 757 #endif
758 758
759 LoginUIServiceFactory::GetForProfile(GetProfile())->ShowLoginUI(false); 759 // Bring up the existing wizard, or just display it on this page.
760 if (!FocusExistingWizardIfPresent()) {
James Hawkins 2012/04/27 17:19:03 Optional nit: I believe the precedence in this fil
Andrew T Wilson (Slow) 2012/04/28 00:32:28 Done.
761 OpenSyncSetup(false);
762 }
760 } 763 }
761 764
762 void SyncSetupHandler::HandleShowSetupUI(const ListValue* args) { 765 void SyncSetupHandler::HandleShowSetupUI(const ListValue* args) {
763 DCHECK(!configuring_sync_); 766 DCHECK(!configuring_sync_);
764 OpenSyncSetup(false); 767 OpenSyncSetup(false);
765 } 768 }
766 769
767 void SyncSetupHandler::HandleStopSyncing(const ListValue* args) { 770 void SyncSetupHandler::HandleStopSyncing(const ListValue* args) {
768 ProfileSyncService* service = GetSyncService(); 771 ProfileSyncService* service = GetSyncService();
769 DCHECK(service); 772 DCHECK(service);
(...skipping 15 matching lines...) Expand all
785 } else if (configuring_sync_) { 788 } else if (configuring_sync_) {
786 ProfileSyncService::SyncEvent( 789 ProfileSyncService::SyncEvent(
787 ProfileSyncService::CANCEL_DURING_CONFIGURE); 790 ProfileSyncService::CANCEL_DURING_CONFIGURE);
788 } else { 791 } else {
789 ProfileSyncService::SyncEvent( 792 ProfileSyncService::SyncEvent(
790 ProfileSyncService::CANCEL_FROM_SIGNON_WITHOUT_AUTH); 793 ProfileSyncService::CANCEL_FROM_SIGNON_WITHOUT_AUTH);
791 } 794 }
792 } 795 }
793 796
794 // Let the various services know that we're no longer active. 797 // Let the various services know that we're no longer active.
795 GetLoginUIService()->LoginUIClosed(web_ui()); 798 GetLoginUIService()->LoginUIClosed(this);
796 if (sync_service) 799 if (sync_service)
797 sync_service->set_setup_in_progress(false); 800 sync_service->set_setup_in_progress(false);
798 801
799 // Make sure user isn't left half-logged-in (signed in, but without sync 802 // Make sure user isn't left half-logged-in (signed in, but without sync
800 // started up). If the user hasn't finished setting up sync, then sign out 803 // started up). If the user hasn't finished setting up sync, then sign out
801 // and shut down sync. 804 // and shut down sync.
802 if (sync_service && !sync_service->HasSyncSetupCompleted()) { 805 if (sync_service && !sync_service->HasSyncSetupCompleted()) {
803 DVLOG(1) << "Signin aborted by user action"; 806 DVLOG(1) << "Signin aborted by user action";
804 sync_service->DisableForUser(); 807 sync_service->DisableForUser();
805 #if !defined(OS_CHROMEOS) 808 #if !defined(OS_CHROMEOS)
(...skipping 22 matching lines...) Expand all
828 } 831 }
829 832
830 // If the wizard is already visible, just focus that one. 833 // If the wizard is already visible, just focus that one.
831 if (FocusExistingWizardIfPresent()) { 834 if (FocusExistingWizardIfPresent()) {
832 if (!IsActiveLogin()) 835 if (!IsActiveLogin())
833 CloseOverlay(); 836 CloseOverlay();
834 return; 837 return;
835 } 838 }
836 839
837 // Notify services that we are now active. 840 // Notify services that we are now active.
838 GetLoginUIService()->SetLoginUI(web_ui()); 841 GetLoginUIService()->SetLoginUI(this);
839 service->set_setup_in_progress(true); 842 service->set_setup_in_progress(true);
840 843
841 // There are several different UI flows that can bring the user here: 844 // There are several different UI flows that can bring the user here:
842 // 1) Signin promo (passes force_login=true) 845 // 1) Signin promo (passes force_login=true)
843 // 2) Normal signin through options page (AreCredentialsAvailable() will 846 // 2) Normal signin through options page (AreCredentialsAvailable() will
844 // return false). 847 // return false).
845 // 3) Previously working credentials have expired 848 // 3) Previously working credentials have expired
846 // (service->GetAuthError() != NONE). 849 // (service->GetAuthError() != NONE).
847 // 4) User is already signed in, but App Notifications needs to force another 850 // 4) User is already signed in, but App Notifications needs to force another
848 // login so it can fetch an oauth token (passes force_login=true) 851 // login so it can fetch an oauth token (passes force_login=true)
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
880 new SigninTracker(GetProfile(), this, 883 new SigninTracker(GetProfile(), this,
881 SigninTracker::SERVICES_INITIALIZING)); 884 SigninTracker::SERVICES_INITIALIZING));
882 service->set_setup_in_progress(true); 885 service->set_setup_in_progress(true);
883 service->UnsuppressAndStart(); 886 service->UnsuppressAndStart();
884 DisplaySpinner(); 887 DisplaySpinner();
885 } else { 888 } else {
886 DisplayConfigureSync(true, false); 889 DisplayConfigureSync(true, false);
887 } 890 }
888 } 891 }
889 892
893 void SyncSetupHandler::FocusUI() {
894 DCHECK(IsActiveLogin());
895 web_ui()->GetWebContents()->GetRenderViewHost()->GetDelegate()->Activate();
896 }
897
898 void SyncSetupHandler::CloseUI() {
899 DCHECK(IsActiveLogin());
900 CloseOverlay();
901 }
902
890 // Private member functions. 903 // Private member functions.
891 904
892 bool SyncSetupHandler::FocusExistingWizardIfPresent() { 905 bool SyncSetupHandler::FocusExistingWizardIfPresent() {
893 LoginUIService* service = GetLoginUIService(); 906 LoginUIService* service = GetLoginUIService();
894 if (!service->current_login_ui()) 907 if (!service->current_login_ui())
895 return false; 908 return false;
896 service->FocusLoginUI(); 909 service->current_login_ui()->FocusUI();
897 return true; 910 return true;
898 } 911 }
899 912
900 LoginUIService* SyncSetupHandler::GetLoginUIService() const { 913 LoginUIService* SyncSetupHandler::GetLoginUIService() const {
901 return LoginUIServiceFactory::GetForProfile(GetProfile()); 914 return LoginUIServiceFactory::GetForProfile(GetProfile());
902 } 915 }
903 916
904 void SyncSetupHandler::CloseOverlay() { 917 void SyncSetupHandler::CloseOverlay() {
905 CloseSyncSetup(); 918 CloseSyncSetup();
906 web_ui()->CallJavascriptFunction("OptionsPage.closeOverlay"); 919 web_ui()->CallJavascriptFunction("OptionsPage.closeOverlay");
(...skipping 18 matching lines...) Expand all
925 if (i != current_profile_index && AreUserNamesEqual( 938 if (i != current_profile_index && AreUserNamesEqual(
926 cache.GetUserNameOfProfileAtIndex(i), username_utf16)) { 939 cache.GetUserNameOfProfileAtIndex(i), username_utf16)) {
927 *error_message = l10n_util::GetStringUTF16( 940 *error_message = l10n_util::GetStringUTF16(
928 IDS_SYNC_USER_NAME_IN_USE_ERROR); 941 IDS_SYNC_USER_NAME_IN_USE_ERROR);
929 return false; 942 return false;
930 } 943 }
931 } 944 }
932 945
933 return true; 946 return true;
934 } 947 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698