Index: chrome/browser/sync/profile_sync_service_harness.cc |
diff --git a/chrome/browser/sync/profile_sync_service_harness.cc b/chrome/browser/sync/profile_sync_service_harness.cc |
index 7922a0e95958cb04298a290eb82a38f0850656c7..a95ba3fb53f353c99ca72b709f5f5ffe34d0204b 100644 |
--- a/chrome/browser/sync/profile_sync_service_harness.cc |
+++ b/chrome/browser/sync/profile_sync_service_harness.cc |
@@ -95,7 +95,6 @@ ProfileSyncServiceHarness::ProfileSyncServiceHarness( |
min_timestamp_needed_(kMinTimestampNeededNone), |
username_(username), |
password_(password), |
- passphrase_acceptance_counter_(0), |
id_(id) { |
if (IsSyncAlreadySetup()) { |
service_ = profile_->GetProfileSyncService(); |
@@ -133,16 +132,6 @@ bool ProfileSyncServiceHarness::SetupSync() { |
return SetupSync(synced_datatypes); |
} |
-void ProfileSyncServiceHarness::StartObservingPassphraseEvents() { |
- // Prime the counter to account for the implicit set passphrase due to |
- // gaia login. |
- passphrase_acceptance_counter_--; |
- registrar_.Add(this, NotificationType::SYNC_PASSPHRASE_ACCEPTED, |
- Source<browser_sync::SyncBackendHost>(service_->backend())); |
- registrar_.Add(this, NotificationType::SYNC_PASSPHRASE_REQUIRED, |
- Source<browser_sync::SyncBackendHost>(service_->backend())); |
-} |
- |
bool ProfileSyncServiceHarness::SetupSync( |
const syncable::ModelTypeSet& synced_datatypes) { |
// Initialize the sync client's profile sync service object. |
@@ -185,10 +174,6 @@ bool ProfileSyncServiceHarness::SetupSync( |
return false; |
} |
- DCHECK(service()->observed_passphrase_required()); |
- if (id_ == 0) |
- DCHECK(!service()->passphrase_required_for_decryption()); |
- |
// Wait for initial gaia passphrase to be accepted. |
DCHECK_EQ(wait_state_, WAITING_FOR_PASSPHRASE_ACCEPTED); |
if (!AwaitStatusChangeWithTimeout(kLiveSyncOperationTimeoutMs, |
@@ -231,21 +216,26 @@ bool ProfileSyncServiceHarness::RunStateChangeMachine() { |
case WAITING_FOR_ON_BACKEND_INITIALIZED: { |
LogClientInfo("WAITING_FOR_ON_BACKEND_INITIALIZED"); |
if (service()->sync_initialized()) { |
- // The sync backend is initialized. Watch for passphrase events. |
- StartObservingPassphraseEvents(); |
+ // The sync backend is initialized. We now wait for passphrase events. |
SignalStateCompleteWithNextState(WAITING_FOR_PASSPHRASE_REQUIRED); |
} |
break; |
} |
case WAITING_FOR_PASSPHRASE_REQUIRED: { |
LogClientInfo("WAITING_FOR_PASSPHRASE_REQUIRED"); |
- if (service_->observed_passphrase_required()) |
+ if (service()->observed_passphrase_required()) { |
+ // Special case when the first client signs in to sync. |
+ if (id_ == 0) |
+ DCHECK(!service()->passphrase_required_for_decryption()); |
+ // The SYNC_PASSPHRASE_REQUIRED notification has been seen. |
SignalStateCompleteWithNextState(WAITING_FOR_PASSPHRASE_ACCEPTED); |
+ } |
break; |
} |
case WAITING_FOR_PASSPHRASE_ACCEPTED: { |
LogClientInfo("WAITING_FOR_PASSPHRASE_ACCEPTED"); |
- if (passphrase_acceptance_counter_ >= 0) |
+ if (service()->ShouldPushChanges()) |
+ // The SYNC_PASSPHRASE_ACCEPTED notification has been seen. |
SignalStateCompleteWithNextState(WAITING_FOR_INITIAL_SYNC); |
break; |
} |
@@ -319,25 +309,11 @@ bool ProfileSyncServiceHarness::AwaitPassphraseAccepted() { |
LOG(ERROR) << "Sync disabled for Client " << id_ << "."; |
return false; |
} |
- passphrase_acceptance_counter_--; |
- if (passphrase_acceptance_counter_ >= 0) |
- return true; |
wait_state_ = WAITING_FOR_PASSPHRASE_ACCEPTED; |
return AwaitStatusChangeWithTimeout(kLiveSyncOperationTimeoutMs, |
"Waiting for passphrase accepted."); |
} |
-void ProfileSyncServiceHarness::Observe(NotificationType type, |
- const NotificationSource& source, |
- const NotificationDetails& details) { |
- if (NotificationType::SYNC_PASSPHRASE_ACCEPTED == type.value) { |
- passphrase_acceptance_counter_++; |
- RunStateChangeMachine(); |
- } else if (NotificationType::SYNC_PASSPHRASE_REQUIRED == type.value) { |
- RunStateChangeMachine(); |
- } |
-} |
- |
bool ProfileSyncServiceHarness::AwaitSyncCycleCompletion( |
const std::string& reason) { |
LogClientInfo("AwaitSyncCycleCompletion"); |