| 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;
 | 
| 
 |