Chromium Code Reviews| 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 68a76cbf4bc1cedbc9f70c048670ddd0ffc9f154..f1746cdc9a7df84773d8970bd26d85ce2dfb7bea 100644 |
| --- a/chrome/browser/sync/profile_sync_service.cc |
| +++ b/chrome/browser/sync/profile_sync_service.cc |
| @@ -127,7 +127,8 @@ static bool IsTokenServiceRelevant(const std::string& service) { |
| bool ShouldShowActionOnUI( |
| const syncer::SyncProtocolError& error) { |
| return (error.action != syncer::UNKNOWN_ACTION && |
| - error.action != syncer::DISABLE_SYNC_ON_CLIENT); |
| + error.action != syncer::DISABLE_SYNC_ON_CLIENT && |
| + error.action != syncer::STOP_SYNC_FOR_DISABLED_ACCOUNT); |
| } |
| ProfileSyncService::ProfileSyncService(ProfileSyncComponentsFactory* factory, |
| @@ -145,6 +146,7 @@ ProfileSyncService::ProfileSyncService(ProfileSyncComponentsFactory* factory, |
| data_type_requested_sync_startup_(false), |
| is_first_time_sync_configure_(false), |
| backend_initialized_(false), |
| + sync_disabled_by_admin_(false), |
| is_auth_in_progress_(false), |
| signin_(signin_manager), |
| unrecoverable_error_reason_(ERROR_REASON_UNSET), |
| @@ -1219,6 +1221,12 @@ void ProfileSyncService::OnActionableError(const SyncProtocolError& error) { |
| // TODO(rsimha): Re-evaluate whether to also sign out the user here after |
| // a dashboard clear. See http://crbug.com/240436. |
| break; |
| + case syncer::STOP_SYNC_FOR_DISABLED_ACCOUNT: |
| + // Sync disabled by domain admin. we should stop syncing until next |
| + // restart |
|
Andrew T Wilson (Slow)
2013/05/24 15:13:10
nit: sentence punctuation (add a period at the end
pavely
2013/05/24 22:17:11
Done.
|
| + sync_disabled_by_admin_ = true; |
| + ShutdownImpl(true); |
| + break; |
| default: |
| NOTREACHED(); |
| } |
| @@ -1975,7 +1983,6 @@ void ProfileSyncService::Observe(int type, |
| break; |
| } |
| case chrome::NOTIFICATION_GOOGLE_SIGNED_OUT: |
| - // Disable sync if the user is signed out. |
| DisableForUser(); |
| break; |
| default: { |
| @@ -2012,7 +2019,7 @@ bool ProfileSyncService::IsSyncEnabled() { |
| } |
| bool ProfileSyncService::IsManaged() const { |
| - return sync_prefs_.IsManaged(); |
| + return sync_prefs_.IsManaged() || sync_disabled_by_admin_; |
|
Andrew T Wilson (Slow)
2013/05/24 15:13:10
I'm OK with this change even though it means we no
|
| } |
| bool ProfileSyncService::ShouldPushChanges() { |