Sync shouldn't install external extensions that user removed

BUG=124901
TEST=manual


Review URL: http://codereview.chromium.org/10360003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135309 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 58b5a60..6e58625 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -1519,6 +1519,14 @@
     return true;
   }
 
+  // Extension from sync was uninstalled by the user as external extensions.
+  // Honor user choice and skip installation/enabling.
+  if (IsExternalExtensionUninstalled(id)) {
+    LOG(WARNING) << "Extension with id " << id
+                 << " from sync was uninstalled as external extension";
+    return true;
+  }
+
   // Set user settings.
   if (extension_sync_data.enabled()) {
     EnableExtension(id);