| Index: chrome/browser/sync/profile_sync_service.cc
 | 
| ===================================================================
 | 
| --- chrome/browser/sync/profile_sync_service.cc	(revision 52107)
 | 
| +++ chrome/browser/sync/profile_sync_service.cc	(working copy)
 | 
| @@ -344,11 +344,6 @@
 | 
|  }
 | 
|  
 | 
|  void ProfileSyncService::DisableForUser() {
 | 
| -  if (WizardIsVisible()) {
 | 
| -    // TODO(timsteele): Focus wizard.
 | 
| -    return;
 | 
| -  }
 | 
| -
 | 
|    LOG(INFO) << "Clearing Sync DB.";
 | 
|  
 | 
|    // Clear prefs (including  SyncSetupHasCompleted) before shutting down so
 | 
| @@ -425,7 +420,7 @@
 | 
|    from_here.Write(true, true, &location);
 | 
|    LOG(ERROR) << location;
 | 
|  
 | 
| -  if (WizardIsVisible()) {
 | 
| +  if (SetupInProgress()) {
 | 
|      // We've hit an error in the middle of a startup process- shutdown all the
 | 
|      // backend stuff, and then restart it, so we're in the same state as before.
 | 
|      MessageLoop::current()->PostTask(FROM_HERE,
 | 
| @@ -490,6 +485,13 @@
 | 
|    FOR_EACH_OBSERVER(Observer, observers_, OnStateChanged());
 | 
|  }
 | 
|  
 | 
| +void ProfileSyncService::OnStopSyncingPermanently() {
 | 
| +  if (SetupInProgress())
 | 
| +    wizard_.Step(SyncSetupWizard::FATAL_ERROR);
 | 
| +
 | 
| +  DisableForUser();
 | 
| +}
 | 
| +
 | 
|  void ProfileSyncService::ShowLoginDialog() {
 | 
|    if (WizardIsVisible()) {
 | 
|      wizard_.Focus();
 | 
| 
 |