Search providers extension API settings UI.

Add more info to the bubble shown on the settings page when extension take over a preference.

BUG=306128

Review URL: https://codereview.chromium.org/43013002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233976 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 60520c9..add192a 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -62,6 +62,7 @@
 #include "chrome/browser/extensions/updater/extension_updater.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
 #include "chrome/browser/ui/webui/favicon_source.h"
 #include "chrome/browser/ui/webui/ntp/thumbnail_source.h"
 #include "chrome/browser/ui/webui/theme_source.h"
@@ -2403,6 +2404,21 @@
   return true;
 }
 
+scoped_ptr<DictionaryValue> ExtensionService::GetExtensionInfo(
+    const std::string& extension_id) const {
+  scoped_ptr<DictionaryValue> dictionary(new DictionaryValue);
+  const extensions::Extension* extension = extensions_.GetByID(extension_id);
+  if (extension) {
+    GURL icon = extensions::ExtensionIconSource::GetIconURL(
+        extension, extension_misc::EXTENSION_ICON_SMALLISH,
+        ExtensionIconSet::MATCH_BIGGER, false, NULL);
+    dictionary->SetString("id", extension_id);
+    dictionary->SetString("name", extension->name());
+    dictionary->SetString("icon", icon.spec());
+  }
+  return dictionary.Pass();
+}
+
 void ExtensionService::ReportExtensionLoadError(
     const base::FilePath& extension_path,
     const std::string &error,