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 7dbe61398620e9c4f501402ea160bd4ed24f164f..301f5ba09ae6eccdd7486771c270fe4dd2e41587 100644 | 
| --- a/chrome/browser/extensions/extension_sync_service.cc | 
| +++ b/chrome/browser/extensions/extension_sync_service.cc | 
| @@ -254,7 +254,9 @@ extensions::ExtensionSyncData ExtensionSyncService::GetExtensionSyncData( | 
| return extensions::ExtensionSyncData( | 
| extension, | 
| extension_service_->IsExtensionEnabled(extension.id()), | 
| - extensions::util::IsIncognitoEnabled(extension.id(), profile_)); | 
| + extensions::util::IsIncognitoEnabled(extension.id(), profile_), | 
| + extension_prefs_->GetDisableReasons(extension.id()) & | 
| + Extension::DISABLE_REMOTE_INSTALL); | 
| } | 
| extensions::AppSyncData ExtensionSyncService::GetAppSyncData( | 
| @@ -263,6 +265,8 @@ extensions::AppSyncData ExtensionSyncService::GetAppSyncData( | 
| extension, | 
| extension_service_->IsExtensionEnabled(extension.id()), | 
| extensions::util::IsIncognitoEnabled(extension.id(), profile_), | 
| + extension_prefs_->GetDisableReasons(extension.id()) & | 
| + Extension::DISABLE_REMOTE_INSTALL, | 
| extension_prefs_->app_sorting()->GetAppLaunchOrdinal(extension.id()), | 
| extension_prefs_->app_sorting()->GetPageOrdinal(extension.id()), | 
| extensions::GetLaunchTypePrefValue(extension_prefs_, extension.id())); | 
| @@ -467,9 +471,12 @@ bool ExtensionSyncService::ProcessExtensionSyncDataHelper( | 
| // is called for it. | 
| if (extension_sync_data.enabled()) | 
| extension_service_->EnableExtension(id); | 
| - else if (!IsPendingEnable(id)) | 
| - extension_service_->DisableExtension( | 
| - id, Extension::DISABLE_UNKNOWN_FROM_SYNC); | 
| + else if (!IsPendingEnable(id)) { | 
| + Extension::DisableReason reason = Extension::DISABLE_UNKNOWN_FROM_SYNC; | 
| + if (extension_sync_data.remote_install()) | 
| 
 
Yoyo Zhou
2014/05/01 22:53:44
I would prefer that this be written more clearly t
 
Marijn Kruisselbrink
2014/05/05 20:45:36
Okay, I changed this around a bit.
 
 | 
| + reason = Extension::DISABLE_REMOTE_INSTALL; | 
| + extension_service_->DisableExtension(id, reason); | 
| + } | 
| // We need to cache some version information here because setting the | 
| // incognito flag invalidates the |extension| pointer (it reloads the | 
| @@ -501,7 +508,8 @@ bool ExtensionSyncService::ProcessExtensionSyncDataHelper( | 
| id, | 
| extension_sync_data.update_url(), | 
| filter, | 
| - kInstallSilently)) { | 
| + kInstallSilently, | 
| + extension_sync_data.remote_install())) { | 
| LOG(WARNING) << "Could not add pending extension for " << id; | 
| // This means that the extension is already pending installation, with a | 
| // non-INTERNAL location. Add to pending_sync_data, even though it will |