#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
-#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_system.h"
+#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/search_engines/template_url.h"
-#include "chrome/browser/search_engines/template_url_service.h"
+#include "chrome/browser/search_engines/ui_thread_search_terms_data.h"
#include "chrome/browser/ui/search_engines/keyword_editor_controller.h"
#include "chrome/browser/ui/search_engines/template_url_table_model.h"
-#include "chrome/common/extensions/api/omnibox/omnibox_handler.h"
-#include "chrome/common/extensions/manifest_handlers/icons_handler.h"
#include "chrome/common/url_constants.h"
+#include "chrome/grit/generated_resources.h"
+#include "chrome/grit/locale_settings.h"
+#include "components/search_engines/template_url.h"
+#include "components/search_engines/template_url_service.h"
+#include "content/public/browser/user_metrics.h"
#include "content/public/browser/web_ui.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/extension.h"
-#include "grit/generated_resources.h"
-#include "grit/locale_settings.h"
#include "ui/base/l10n/l10n_util.h"
namespace {
// Find the default engine.
const TemplateURL* default_engine =
- list_controller_->url_model()->GetDefaultSearchProvider();
+ list_controller_->GetDefaultSearchProvider();
int default_index = list_controller_->table_model()->IndexOfTemplateURL(
default_engine);
TemplateURLTableModel* table_model = list_controller_->table_model();
const TemplateURL* template_url = list_controller_->GetTemplateURL(index);
+ // The items which are to be written into |dict| are also described in
+ // chrome/browser/resources/options/search_engine_manager_engine_list.js
+ // in @typedef for SearchEngine. Please update it whenever you add or remove
+ // any keys here.
base::DictionaryValue* dict = new base::DictionaryValue();
dict->SetString("name", template_url->short_name());
dict->SetString("displayName", table_model->GetText(
index, IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN));
dict->SetString("keyword", table_model->GetText(
index, IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN));
- dict->SetString("url", template_url->url_ref().DisplayURL());
+ dict->SetString("url", template_url->url_ref().DisplayURL(
+ UIThreadSearchTermsData(Profile::FromWebUI(web_ui()))));
dict->SetBoolean("urlLocked", template_url->prepopulate_id() > 0);
GURL icon_url = template_url->favicon_url();
if (icon_url.is_valid())
dict->SetBoolean("canBeEdited", list_controller_->CanEdit(template_url));
dict->SetBoolean("isExtension", is_extension);
if (template_url->GetType() == TemplateURL::NORMAL_CONTROLLED_BY_EXTENSION) {
- std::string extension_id = template_url->GetExtensionId();
- ExtensionService* extension_service = extensions::ExtensionSystem::Get(
- Profile::FromWebUI(web_ui()))->extension_service();
- scoped_ptr<base::DictionaryValue> dictionary =
- extension_service->GetExtensionInfo(extension_id);
- if (!dictionary->empty())
- dict->Set("extension", dictionary.release());
+ const extensions::Extension* extension =
+ extensions::ExtensionRegistry::Get(Profile::FromWebUI(web_ui()))
+ ->GetExtensionById(template_url->GetExtensionId(),
+ extensions::ExtensionRegistry::EVERYTHING);
+ if (extension) {
+ dict->Set("extension",
+ extensions::util::GetExtensionInfo(extension).release());
+ }
}
return dict;
}
return;
list_controller_->MakeDefaultTemplateURL(index);
+
+ content::RecordAction(
+ base::UserMetricsAction("Options_SearchEngineSetDefault"));
}
void SearchEngineManagerHandler::RemoveSearchEngine(
if (index < 0 || index >= list_controller_->table_model()->RowCount())
return;
- if (list_controller_->CanRemove(list_controller_->GetTemplateURL(index)))
+ if (list_controller_->CanRemove(list_controller_->GetTemplateURL(index))) {
list_controller_->RemoveTemplateURL(index);
+ content::RecordAction(
+ base::UserMetricsAction("Options_SearchEngineRemoved"));
+ }
}
void SearchEngineManagerHandler::EditSearchEngine(const base::ListValue* args) {
}
void SearchEngineManagerHandler::CheckSearchEngineInfoValidity(
- const base::ListValue* args)
-{
+ const base::ListValue* args) {
if (!edit_controller_.get())
return;
base::string16 name;