| Index: chrome/browser/sync/glue/extension_util.cc | 
| diff --git a/chrome/browser/sync/glue/extension_util.cc b/chrome/browser/sync/glue/extension_util.cc | 
| index d34eafe4a23fa72c71633726051d43592e9ef604..1fad37e1d3be6fccf8517a39976dd1518bd0f9d8 100644 | 
| --- a/chrome/browser/sync/glue/extension_util.cc | 
| +++ b/chrome/browser/sync/glue/extension_util.cc | 
| @@ -12,6 +12,7 @@ | 
| #include "chrome/browser/extensions/extensions_service.h" | 
| #include "chrome/browser/sync/protocol/extension_specifics.pb.h" | 
| #include "chrome/common/extensions/extension.h" | 
| +#include "chrome/common/extensions/extension_constants.h" | 
| #include "googleurl/src/gurl.h" | 
|  | 
| namespace browser_sync { | 
| @@ -33,6 +34,26 @@ bool IsExtensionSyncable(const Extension& extension) { | 
| return false; | 
| } | 
|  | 
| +  // Disallow extensions with non-gallery auto-update URLs for now. | 
| +  // | 
| +  // TODO(akalin): Relax this restriction once we've put in UI to | 
| +  // approve synced extensions. | 
| +  if (!extension.update_url().is_empty() && | 
| +      (extension.update_url() != | 
| +       GURL(extension_urls::kGalleryUpdateHttpUrl)) && | 
| +      (extension.update_url() != | 
| +       GURL(extension_urls::kGalleryUpdateHttpsUrl))) { | 
| +    return false; | 
| +  } | 
| + | 
| +  // Disallow extensions with native code plugins. | 
| +  // | 
| +  // TODO(akalin): Relax this restriction once we've put in UI to | 
| +  // approve synced extensions. | 
| +  if (!extension.plugins().empty()) { | 
| +    return false; | 
| +  } | 
| + | 
| return true; | 
| } | 
|  | 
|  |