Index: chrome/browser/sync/profile_sync_service.cc |
diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc |
index ca82c69896e3965e62c92c2cb788ff2270f5017b..8dd11b460b42b6be221c133489a75a5c6dc75065 100644 |
--- a/chrome/browser/sync/profile_sync_service.cc |
+++ b/chrome/browser/sync/profile_sync_service.cc |
@@ -631,13 +631,6 @@ void ProfileSyncService::DisableForUser() { |
invalidator_storage_.Clear(); |
ClearUnrecoverableError(); |
ShutdownImpl(true); |
- |
- // TODO(atwilson): Don't call SignOut() on *any* platform - move this into |
- // the UI layer if needed (sync activity should never result in the user |
- // being logged out of all chrome services). |
- if (!auto_start_enabled_ && !signin_->GetAuthenticatedUsername().empty()) |
- signin_->SignOut(); |
- |
NotifyObservers(); |
} |
@@ -944,10 +937,12 @@ void ProfileSyncService::UpdateAuthErrorState(const AuthError& error) { |
is_auth_in_progress_ = false; |
last_auth_error_ = error; |
- // Fan the notification out to interested UI-thread components. |
- NotifyObservers(); |
+ // Fan the notification out to interested UI-thread components. Notify the |
+ // SigninGlobalError first so it reflects the latest auth state before we |
+ // notify observers. |
if (signin()) |
signin()->signin_global_error()->AuthStatusChanged(); |
+ NotifyObservers(); |
} |
namespace { |