| Index: chrome/browser/extensions/extension_service.cc
|
| diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
|
| index 2f1874f40832b29c697f7e00e569cbc35d81c02c..8712e6fc5d42235a7596a81d681b34aa15bcacb2 100644
|
| --- a/chrome/browser/extensions/extension_service.cc
|
| +++ b/chrome/browser/extensions/extension_service.cc
|
| @@ -1638,6 +1638,17 @@ void ExtensionService::ProcessSyncData(
|
| ExtensionFilter filter) {
|
| const std::string& id = extension_sync_data.id;
|
|
|
| + // If we have an app update for an extension, or vice versa, ignore it.
|
| + //
|
| + // This can happen if an app author publishes an update that is actually an
|
| + // extension, for example.
|
| + const Extension* extension_if_installed =
|
| + GetExtensionByIdInternal(id, true, true, true);
|
| + if (extension_if_installed && !filter(*extension_if_installed)) {
|
| + LOG(WARNING) << "Attempt to sync wrong type of extension for " << id;
|
| + return;
|
| + }
|
| +
|
| // Handle uninstalls first.
|
| if (extension_sync_data.uninstalled) {
|
| std::string error;
|
|
|