Chromium Code Reviews| Index: chrome/browser/extensions/extension_sync_service.cc |
| diff --git a/chrome/browser/extensions/extension_sync_service.cc b/chrome/browser/extensions/extension_sync_service.cc |
| index 9a8fddb81453f890135b095a10e945d8cfcadda9..fa4b5b1fd6dfdeef6ebcc0706c36e68956a5b71e 100644 |
| --- a/chrome/browser/extensions/extension_sync_service.cc |
| +++ b/chrome/browser/extensions/extension_sync_service.cc |
| @@ -283,6 +283,7 @@ ExtensionSyncData ExtensionSyncService::GetExtensionSyncData( |
| return ExtensionSyncData( |
| extension, |
| extension_service_->IsExtensionEnabled(extension.id()), |
| + extension_prefs_->GetDisableReasons(extension.id()), |
| extensions::util::IsIncognitoEnabled(extension.id(), profile_), |
| extension_prefs_->HasDisableReason(extension.id(), |
| Extension::DISABLE_REMOTE_INSTALL), |
| @@ -293,6 +294,7 @@ AppSyncData ExtensionSyncService::GetAppSyncData( |
| const Extension& extension) const { |
| return AppSyncData( |
| extension, extension_service_->IsExtensionEnabled(extension.id()), |
| + extension_prefs_->GetDisableReasons(extension.id()), |
| extensions::util::IsIncognitoEnabled(extension.id(), profile_), |
| extension_prefs_->HasDisableReason(extension.id(), |
| Extension::DISABLE_REMOTE_INSTALL), |
| @@ -516,13 +518,21 @@ bool ExtensionSyncService::ProcessExtensionSyncDataHelper( |
| if (extension_sync_data.enabled()) { |
| extension_service_->EnableExtension(id); |
| } else if (!IsPendingEnable(id)) { |
| + int disable_reasons = extension_sync_data.disable_reasons(); |
| if (extension_sync_data.remote_install()) { |
| - extension_service_->DisableExtension(id, |
| - Extension::DISABLE_REMOTE_INSTALL); |
| - } else { |
| - extension_service_->DisableExtension( |
| - id, Extension::DISABLE_UNKNOWN_FROM_SYNC); |
| + // In the non-legacy case where we sync disable reasons, |
| + // DISABLE_REMOTE_INSTALL should be there already. |
|
not at google - send to devlin
2015/05/19 14:32:10
It might be because I just woke up, but why is thi
Marc Treib
2015/05/19 15:30:55
What I'm checking is: If there are any disable rea
|
| + DCHECK(!disable_reasons || |
| + (disable_reasons & Extension::DISABLE_REMOTE_INSTALL)); |
| + disable_reasons |= Extension::DISABLE_REMOTE_INSTALL; |
| } |
| + if (!disable_reasons) { |
| + // Legacy case, from before we synced disable reasons. |
|
not at google - send to devlin
2015/05/19 14:32:10
You might want to link to the bug# or mention the
Marc Treib
2015/05/19 15:30:55
Done.
|
| + disable_reasons = Extension::DISABLE_UNKNOWN_FROM_SYNC; |
|
not at google - send to devlin
2015/05/12 18:04:17
This is important to test, and rather than lumping
Marc Treib
2015/05/19 12:12:03
"This" being the legacy case, where no disable rea
not at google - send to devlin
2015/05/19 14:32:10
yeah that's what I mean, thanks.
|
| + } |
| + |
| + extension_service_->DisableExtension( |
| + id, Extension::DisableReason(disable_reasons)); |
| } |
| // We need to cache some version information here because setting the |