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

Side by Side Diff: chrome/browser/sync/profile_sync_service.cc

Issue 7093004: Sync: Refactor the ProfileSyncService and sync setup flow to remove use of WebUI from PSS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add tests, fixes. Created 9 years, 6 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/sync/profile_sync_service.h" 5 #include "chrome/browser/sync/profile_sync_service.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <map> 8 #include <map>
9 #include <ostream> 9 #include <ostream>
10 #include <set> 10 #include <set>
(...skipping 25 matching lines...) Expand all
36 #include "chrome/browser/sync/js_event_details.h" 36 #include "chrome/browser/sync/js_event_details.h"
37 #include "chrome/browser/sync/profile_sync_factory.h" 37 #include "chrome/browser/sync/profile_sync_factory.h"
38 #include "chrome/browser/sync/signin_manager.h" 38 #include "chrome/browser/sync/signin_manager.h"
39 #include "chrome/browser/ui/browser.h" 39 #include "chrome/browser/ui/browser.h"
40 #include "chrome/browser/ui/browser_list.h" 40 #include "chrome/browser/ui/browser_list.h"
41 #include "chrome/common/chrome_switches.h" 41 #include "chrome/common/chrome_switches.h"
42 #include "chrome/common/net/gaia/gaia_constants.h" 42 #include "chrome/common/net/gaia/gaia_constants.h"
43 #include "chrome/common/pref_names.h" 43 #include "chrome/common/pref_names.h"
44 #include "chrome/common/time_format.h" 44 #include "chrome/common/time_format.h"
45 #include "chrome/common/url_constants.h" 45 #include "chrome/common/url_constants.h"
46 #include "content/browser/webui/web_ui.h"
47 #include "content/common/notification_details.h" 46 #include "content/common/notification_details.h"
48 #include "content/common/notification_source.h" 47 #include "content/common/notification_source.h"
49 #include "content/common/notification_type.h" 48 #include "content/common/notification_type.h"
50 #include "grit/generated_resources.h" 49 #include "grit/generated_resources.h"
51 #include "ui/base/l10n/l10n_util.h" 50 #include "ui/base/l10n/l10n_util.h"
52 51
53 using browser_sync::ChangeProcessor; 52 using browser_sync::ChangeProcessor;
54 using browser_sync::DataTypeController; 53 using browser_sync::DataTypeController;
55 using browser_sync::DataTypeManager; 54 using browser_sync::DataTypeManager;
56 using browser_sync::SyncBackendHost; 55 using browser_sync::SyncBackendHost;
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 // The very first time the backend initializes is effectively the first time 534 // The very first time the backend initializes is effectively the first time
536 // we can say we successfully "synced". last_synced_time_ will only be null 535 // we can say we successfully "synced". last_synced_time_ will only be null
537 // in this case, because the pref wasn't restored on StartUp. 536 // in this case, because the pref wasn't restored on StartUp.
538 if (last_synced_time_.is_null()) { 537 if (last_synced_time_.is_null()) {
539 UpdateLastSyncedTime(); 538 UpdateLastSyncedTime();
540 } 539 }
541 NotifyObservers(); 540 NotifyObservers();
542 541
543 if (!cros_user_.empty()) { 542 if (!cros_user_.empty()) {
544 if (profile_->GetPrefs()->GetBoolean(prefs::kSyncSuppressStart)) { 543 if (profile_->GetPrefs()->GetBoolean(prefs::kSyncSuppressStart)) {
545 ShowConfigure(NULL, true); 544 ShowConfigure(true);
546 } else { 545 } else {
547 SetSyncSetupCompleted(); 546 SetSyncSetupCompleted();
548 } 547 }
549 } 548 }
550 549
551 if (HasSyncSetupCompleted()) { 550 if (HasSyncSetupCompleted()) {
552 ConfigureDataTypeManager(); 551 ConfigureDataTypeManager();
553 } 552 }
554 } 553 }
555 554
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 void ProfileSyncService::OnMigrationNeededForTypes( 701 void ProfileSyncService::OnMigrationNeededForTypes(
703 const syncable::ModelTypeSet& types) { 702 const syncable::ModelTypeSet& types) {
704 DCHECK(backend_initialized_); 703 DCHECK(backend_initialized_);
705 DCHECK(data_type_manager_.get()); 704 DCHECK(data_type_manager_.get());
706 705
707 // Migrator must be valid, because we don't sync until it is created and this 706 // Migrator must be valid, because we don't sync until it is created and this
708 // callback originates from a sync cycle. 707 // callback originates from a sync cycle.
709 migrator_->MigrateTypes(types); 708 migrator_->MigrateTypes(types);
710 } 709 }
711 710
712 void ProfileSyncService::ShowLoginDialog(WebUI* web_ui) { 711 void ProfileSyncService::ShowLoginDialog() {
713 if (WizardIsVisible()) { 712 if (WizardIsVisible()) {
714 wizard_.Focus(); 713 wizard_.Focus();
715 // Force the wizard to step to the login screen (which will only actually 714 // Force the wizard to step to the login screen (which will only actually
716 // happen if the transition is valid). 715 // happen if the transition is valid).
717 wizard_.Step(SyncSetupWizard::GAIA_LOGIN); 716 wizard_.Step(SyncSetupWizard::GAIA_LOGIN);
718 return; 717 return;
719 } 718 }
720 719
721 if (!auth_error_time_.is_null()) { 720 if (!auth_error_time_.is_null()) {
722 UMA_HISTOGRAM_LONG_TIMES("Sync.ReauthorizationTime", 721 UMA_HISTOGRAM_LONG_TIMES("Sync.ReauthorizationTime",
723 base::TimeTicks::Now() - auth_error_time_); 722 base::TimeTicks::Now() - auth_error_time_);
724 auth_error_time_ = base::TimeTicks(); // Reset auth_error_time_ to null. 723 auth_error_time_ = base::TimeTicks(); // Reset auth_error_time_ to null.
725 } 724 }
726 725
727 ShowSyncSetup(web_ui, SyncSetupWizard::GAIA_LOGIN); 726 ShowSyncSetup(SyncSetupWizard::GAIA_LOGIN);
728 727
729 NotifyObservers(); 728 NotifyObservers();
730 } 729 }
731 730
732 void ProfileSyncService::ShowErrorUI(WebUI* web_ui) { 731 void ProfileSyncService::ShowErrorUI() {
733 if (IsPassphraseRequired()) { 732 if (WizardIsVisible()) {
tim (not reviewing) 2011/06/13 22:32:01 I like that some of the complexity here moved into
James Hawkins 2011/06/13 23:14:52 I don't know why or if this is still necessary, on
734 if (IsUsingSecondaryPassphrase()) 733 wizard_.Focus();
735 PromptForExistingPassphrase(web_ui);
736 else
737 NOTREACHED(); // Migration no longer supported.
738
739 return; 734 return;
740 } 735 }
741 736
742 const GoogleServiceAuthError& error = GetAuthError(); 737 ShowSyncSetup(SyncSetupWizard::NONFATAL_ERROR);
743 if (error.state() == GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS ||
744 error.state() == GoogleServiceAuthError::CAPTCHA_REQUIRED ||
745 error.state() == GoogleServiceAuthError::ACCOUNT_DELETED ||
746 error.state() == GoogleServiceAuthError::ACCOUNT_DISABLED ||
747 error.state() == GoogleServiceAuthError::SERVICE_UNAVAILABLE) {
748 ShowLoginDialog(web_ui);
749 }
750 } 738 }
751 739
752 void ProfileSyncService::ShowConfigure(WebUI* web_ui, bool sync_everything) { 740 void ProfileSyncService::ShowConfigure(bool sync_everything) {
753 if (WizardIsVisible()) { 741 if (WizardIsVisible()) {
754 wizard_.Focus(); 742 wizard_.Focus();
755 return; 743 return;
756 } 744 }
757 745
758 if (sync_everything) 746 if (sync_everything)
759 ShowSyncSetup(web_ui, SyncSetupWizard::SYNC_EVERYTHING); 747 ShowSyncSetup(SyncSetupWizard::SYNC_EVERYTHING);
760 else 748 else
761 ShowSyncSetup(web_ui, SyncSetupWizard::CONFIGURE); 749 ShowSyncSetup(SyncSetupWizard::CONFIGURE);
762 } 750 }
763 751
764 void ProfileSyncService::PromptForExistingPassphrase(WebUI* web_ui) { 752 void ProfileSyncService::PromptForExistingPassphrase() {
765 if (WizardIsVisible()) { 753 if (WizardIsVisible()) {
766 wizard_.Focus(); 754 wizard_.Focus();
767 return; 755 return;
768 } 756 }
769 757
770 ShowSyncSetup(web_ui, SyncSetupWizard::ENTER_PASSPHRASE); 758 ShowSyncSetup(SyncSetupWizard::ENTER_PASSPHRASE);
771 } 759 }
772 760
773 void ProfileSyncService::ShowSyncSetup(WebUI* web_ui, 761 void ProfileSyncService::ShowSyncSetup(SyncSetupWizard::State state) {
774 SyncSetupWizard::State state) {
775 wizard_.Step(state); 762 wizard_.Step(state);
776 if (web_ui) 763 BrowserList::GetLastActive()->ShowOptionsTab(chrome::kSyncSetupSubPage);
777 web_ui->CallJavascriptFunction("options.SyncSetupOverlay.showSyncDialog");
778 else
779 BrowserList::GetLastActive()->ShowOptionsTab(chrome::kSyncSetupSubPage);
780 } 764 }
781 765
782 SyncBackendHost::StatusSummary ProfileSyncService::QuerySyncStatusSummary() { 766 SyncBackendHost::StatusSummary ProfileSyncService::QuerySyncStatusSummary() {
783 if (backend_.get() && backend_initialized_) 767 if (backend_.get() && backend_initialized_)
784 return backend_->GetStatusSummary(); 768 return backend_->GetStatusSummary();
785 else 769 else
786 return SyncBackendHost::Status::OFFLINE_UNUSABLE; 770 return SyncBackendHost::Status::OFFLINE_UNUSABLE;
787 } 771 }
788 772
789 SyncBackendHost::Status ProfileSyncService::QueryDetailedSyncStatus() { 773 SyncBackendHost::Status ProfileSyncService::QueryDetailedSyncStatus() {
(...skipping 561 matching lines...) Expand 10 before | Expand all | Expand 10 after
1351 // another, and no unrecoverable error has transpired. 1335 // another, and no unrecoverable error has transpired.
1352 if (unrecoverable_error_detected_) 1336 if (unrecoverable_error_detected_)
1353 return false; 1337 return false;
1354 1338
1355 if (!data_type_manager_.get()) 1339 if (!data_type_manager_.get())
1356 return false; 1340 return false;
1357 1341
1358 return data_type_manager_->state() == DataTypeManager::CONFIGURED; 1342 return data_type_manager_->state() == DataTypeManager::CONFIGURED;
1359 } 1343 }
1360 1344
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698