| OLD | NEW |
| 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 Loading... |
| 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" |
| 46 #include "content/common/notification_details.h" | 47 #include "content/common/notification_details.h" |
| 47 #include "content/common/notification_source.h" | 48 #include "content/common/notification_source.h" |
| 48 #include "content/common/notification_type.h" | 49 #include "content/common/notification_type.h" |
| 49 #include "grit/generated_resources.h" | 50 #include "grit/generated_resources.h" |
| 50 #include "ui/base/l10n/l10n_util.h" | 51 #include "ui/base/l10n/l10n_util.h" |
| 51 | 52 |
| 52 using browser_sync::ChangeProcessor; | 53 using browser_sync::ChangeProcessor; |
| 53 using browser_sync::DataTypeController; | 54 using browser_sync::DataTypeController; |
| 54 using browser_sync::DataTypeManager; | 55 using browser_sync::DataTypeManager; |
| 55 using browser_sync::SyncBackendHost; | 56 using browser_sync::SyncBackendHost; |
| (...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 532 // The very first time the backend initializes is effectively the first time | 533 // The very first time the backend initializes is effectively the first time |
| 533 // we can say we successfully "synced". last_synced_time_ will only be null | 534 // we can say we successfully "synced". last_synced_time_ will only be null |
| 534 // in this case, because the pref wasn't restored on StartUp. | 535 // in this case, because the pref wasn't restored on StartUp. |
| 535 if (last_synced_time_.is_null()) { | 536 if (last_synced_time_.is_null()) { |
| 536 UpdateLastSyncedTime(); | 537 UpdateLastSyncedTime(); |
| 537 } | 538 } |
| 538 NotifyObservers(); | 539 NotifyObservers(); |
| 539 | 540 |
| 540 if (!cros_user_.empty()) { | 541 if (!cros_user_.empty()) { |
| 541 if (profile_->GetPrefs()->GetBoolean(prefs::kSyncSuppressStart)) { | 542 if (profile_->GetPrefs()->GetBoolean(prefs::kSyncSuppressStart)) { |
| 542 ShowConfigure(true); | 543 ShowConfigure(NULL, true); |
| 543 } else { | 544 } else { |
| 544 SetSyncSetupCompleted(); | 545 SetSyncSetupCompleted(); |
| 545 } | 546 } |
| 546 } | 547 } |
| 547 | 548 |
| 548 if (HasSyncSetupCompleted()) { | 549 if (HasSyncSetupCompleted()) { |
| 549 ConfigureDataTypeManager(); | 550 ConfigureDataTypeManager(); |
| 550 } | 551 } |
| 551 } | 552 } |
| 552 | 553 |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 702 void ProfileSyncService::OnMigrationNeededForTypes( | 703 void ProfileSyncService::OnMigrationNeededForTypes( |
| 703 const syncable::ModelTypeSet& types) { | 704 const syncable::ModelTypeSet& types) { |
| 704 DCHECK(backend_initialized_); | 705 DCHECK(backend_initialized_); |
| 705 DCHECK(data_type_manager_.get()); | 706 DCHECK(data_type_manager_.get()); |
| 706 | 707 |
| 707 // Migrator must be valid, because we don't sync until it is created and this | 708 // Migrator must be valid, because we don't sync until it is created and this |
| 708 // callback originates from a sync cycle. | 709 // callback originates from a sync cycle. |
| 709 migrator_->MigrateTypes(types); | 710 migrator_->MigrateTypes(types); |
| 710 } | 711 } |
| 711 | 712 |
| 712 void ProfileSyncService::ShowLoginDialog() { | 713 void ProfileSyncService::ShowLoginDialog(WebUI* web_ui) { |
| 713 if (WizardIsVisible()) { | 714 if (WizardIsVisible()) { |
| 714 wizard_.Focus(); | 715 wizard_.Focus(); |
| 715 // Force the wizard to step to the login screen (which will only actually | 716 // Force the wizard to step to the login screen (which will only actually |
| 716 // happen if the transition is valid). | 717 // happen if the transition is valid). |
| 717 wizard_.Step(SyncSetupWizard::GAIA_LOGIN); | 718 wizard_.Step(SyncSetupWizard::GAIA_LOGIN); |
| 718 return; | 719 return; |
| 719 } | 720 } |
| 720 | 721 |
| 721 if (!auth_error_time_.is_null()) { | 722 if (!auth_error_time_.is_null()) { |
| 722 UMA_HISTOGRAM_LONG_TIMES("Sync.ReauthorizationTime", | 723 UMA_HISTOGRAM_LONG_TIMES("Sync.ReauthorizationTime", |
| 723 base::TimeTicks::Now() - auth_error_time_); | 724 base::TimeTicks::Now() - auth_error_time_); |
| 724 auth_error_time_ = base::TimeTicks(); // Reset auth_error_time_ to null. | 725 auth_error_time_ = base::TimeTicks(); // Reset auth_error_time_ to null. |
| 725 } | 726 } |
| 726 | 727 |
| 727 wizard_.Step(SyncSetupWizard::GAIA_LOGIN); | 728 wizard_.Step(SyncSetupWizard::GAIA_LOGIN); |
| 728 | 729 |
| 730 if (web_ui) { |
| 731 web_ui->CallJavascriptFunction("options.SyncSetupOverlay.showSyncDialog"); |
| 732 } else { |
| 733 BrowserList::GetLastActive()->ShowOptionsTab(chrome::kSyncSetupSubPage); |
| 734 } |
| 735 |
| 729 NotifyObservers(); | 736 NotifyObservers(); |
| 730 } | 737 } |
| 731 | 738 |
| 732 void ProfileSyncService::ShowErrorUI() { | 739 void ProfileSyncService::ShowErrorUI(WebUI* web_ui) { |
| 733 if (IsPassphraseRequired()) { | 740 if (IsPassphraseRequired()) { |
| 734 if (IsUsingSecondaryPassphrase()) | 741 if (IsUsingSecondaryPassphrase()) |
| 735 PromptForExistingPassphrase(); | 742 PromptForExistingPassphrase(); |
| 736 else | 743 else |
| 737 NOTREACHED(); // Migration no longer supported. | 744 NOTREACHED(); // Migration no longer supported. |
| 738 | 745 |
| 739 return; | 746 return; |
| 740 } | 747 } |
| 741 | 748 |
| 742 const GoogleServiceAuthError& error = GetAuthError(); | 749 const GoogleServiceAuthError& error = GetAuthError(); |
| 743 if (error.state() == GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS || | 750 if (error.state() == GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS || |
| 744 error.state() == GoogleServiceAuthError::CAPTCHA_REQUIRED || | 751 error.state() == GoogleServiceAuthError::CAPTCHA_REQUIRED || |
| 745 error.state() == GoogleServiceAuthError::ACCOUNT_DELETED || | 752 error.state() == GoogleServiceAuthError::ACCOUNT_DELETED || |
| 746 error.state() == GoogleServiceAuthError::ACCOUNT_DISABLED || | 753 error.state() == GoogleServiceAuthError::ACCOUNT_DISABLED || |
| 747 error.state() == GoogleServiceAuthError::SERVICE_UNAVAILABLE) { | 754 error.state() == GoogleServiceAuthError::SERVICE_UNAVAILABLE) { |
| 748 ShowLoginDialog(); | 755 ShowLoginDialog(web_ui); |
| 749 } | 756 } |
| 750 } | 757 } |
| 751 | 758 |
| 752 | 759 void ProfileSyncService::ShowConfigure(WebUI* web_ui, bool sync_everything) { |
| 753 void ProfileSyncService::ShowConfigure(bool sync_everything) { | |
| 754 if (WizardIsVisible()) { | 760 if (WizardIsVisible()) { |
| 755 wizard_.Focus(); | 761 wizard_.Focus(); |
| 756 return; | 762 return; |
| 757 } | 763 } |
| 758 | 764 |
| 759 if (sync_everything) | 765 if (sync_everything) |
| 760 wizard_.Step(SyncSetupWizard::SYNC_EVERYTHING); | 766 wizard_.Step(SyncSetupWizard::SYNC_EVERYTHING); |
| 761 else | 767 else |
| 762 wizard_.Step(SyncSetupWizard::CONFIGURE); | 768 wizard_.Step(SyncSetupWizard::CONFIGURE); |
| 769 |
| 770 if (web_ui) |
| 771 web_ui->CallJavascriptFunction("options.SyncSetupOverlay.showSyncDialog"); |
| 772 else |
| 773 BrowserList::GetLastActive()->ShowOptionsTab(chrome::kSyncSetupSubPage); |
| 763 } | 774 } |
| 764 | 775 |
| 765 void ProfileSyncService::PromptForExistingPassphrase() { | 776 void ProfileSyncService::PromptForExistingPassphrase() { |
| 766 if (WizardIsVisible()) { | 777 if (WizardIsVisible()) { |
| 767 wizard_.Focus(); | 778 wizard_.Focus(); |
| 768 return; | 779 return; |
| 769 } | 780 } |
| 770 | 781 |
| 771 wizard_.Step(SyncSetupWizard::ENTER_PASSPHRASE); | 782 wizard_.Step(SyncSetupWizard::ENTER_PASSPHRASE); |
| 772 } | 783 } |
| (...skipping 562 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1335 return false; | 1346 return false; |
| 1336 | 1347 |
| 1337 return data_type_manager_->state() == DataTypeManager::CONFIGURED; | 1348 return data_type_manager_->state() == DataTypeManager::CONFIGURED; |
| 1338 } | 1349 } |
| 1339 | 1350 |
| 1340 ProfileSyncService::EncryptedTypes::EncryptedTypes() { | 1351 ProfileSyncService::EncryptedTypes::EncryptedTypes() { |
| 1341 current.insert(syncable::PASSWORDS); | 1352 current.insert(syncable::PASSWORDS); |
| 1342 } | 1353 } |
| 1343 | 1354 |
| 1344 ProfileSyncService::EncryptedTypes::~EncryptedTypes() {} | 1355 ProfileSyncService::EncryptedTypes::~EncryptedTypes() {} |
| OLD | NEW |