Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(215)

Side by Side Diff: chrome/browser/search_engines/template_url_model.cc

Issue 2807033: Add support for omnibox.onInputStarted and onInputCancelled. (Closed)
Patch Set: fix Stop Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/search_engines/template_url_model.h" 5 #include "chrome/browser/search_engines/template_url_model.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/stl_util-inl.h" 8 #include "base/stl_util-inl.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/extensions/extensions_service.h" 10 #include "chrome/browser/extensions/extensions_service.h"
(...skipping 1050 matching lines...) Expand 10 before | Expand all | Expand 10 after
1061 // TODO(mpcomplete): disable the keyword when the extension is disabled. 1061 // TODO(mpcomplete): disable the keyword when the extension is disabled.
1062 if (extension->omnibox_keyword().empty()) 1062 if (extension->omnibox_keyword().empty())
1063 return; 1063 return;
1064 1064
1065 Load(); 1065 Load();
1066 if (!loaded_) { 1066 if (!loaded_) {
1067 pending_extension_ids_.push_back(extension->id()); 1067 pending_extension_ids_.push_back(extension->id());
1068 return; 1068 return;
1069 } 1069 }
1070 1070
1071 if (GetTemplateURLForExtension(extension)) 1071 const TemplateURL* existing_url = GetTemplateURLForExtension(extension);
1072 return; // Already have this one registered (might be an upgrade).
1073
1074 std::wstring keyword = UTF8ToWide(extension->omnibox_keyword()); 1072 std::wstring keyword = UTF8ToWide(extension->omnibox_keyword());
1075 1073
1076 TemplateURL* template_url = new TemplateURL; 1074 TemplateURL* template_url = new TemplateURL;
1077 template_url->set_short_name(UTF8ToWide(extension->name())); 1075 template_url->set_short_name(UTF8ToWide(extension->name()));
1078 template_url->set_keyword(keyword); 1076 template_url->set_keyword(keyword);
1079 // This URL is not actually used for navigation. It holds the extension's 1077 // This URL is not actually used for navigation. It holds the extension's
1080 // ID, as well as forcing the TemplateURL to be treated as a search keyword. 1078 // ID, as well as forcing the TemplateURL to be treated as a search keyword.
1081 template_url->SetURL( 1079 template_url->SetURL(
1082 std::string(chrome::kExtensionScheme) + "://" + 1080 std::string(chrome::kExtensionScheme) + "://" +
1083 extension->id() + "/?q={searchTerms}", 0, 0); 1081 extension->id() + "/?q={searchTerms}", 0, 0);
1084 template_url->set_safe_for_autoreplace(false); 1082 template_url->set_safe_for_autoreplace(false);
1085 1083
1086 Add(template_url); 1084 if (existing_url) {
1085 // TODO(mpcomplete): only replace if the user hasn't changed the keyword.
1086 // (We don't have UI for that yet).
1087 Replace(existing_url, template_url);
1088 } else {
1089 Add(template_url);
1090 }
1087 } 1091 }
1088 1092
1089 void TemplateURLModel::UnregisterExtensionKeyword(Extension* extension) { 1093 void TemplateURLModel::UnregisterExtensionKeyword(Extension* extension) {
1090 const TemplateURL* url = GetTemplateURLForExtension(extension); 1094 const TemplateURL* url = GetTemplateURLForExtension(extension);
1091 if (url) 1095 if (url)
1092 Remove(url); 1096 Remove(url);
1093 } 1097 }
1094 1098
1095 const TemplateURL* TemplateURLModel::GetTemplateURLForExtension( 1099 const TemplateURL* TemplateURLModel::GetTemplateURLForExtension(
1096 Extension* extension) const { 1100 Extension* extension) const {
1097 for (TemplateURLVector::const_iterator i = template_urls_.begin(); 1101 for (TemplateURLVector::const_iterator i = template_urls_.begin();
1098 i != template_urls_.end(); ++i) { 1102 i != template_urls_.end(); ++i) {
1099 if ((*i)->IsExtensionKeyword() && (*i)->url()->GetHost() == extension->id()) 1103 if ((*i)->IsExtensionKeyword() && (*i)->url()->GetHost() == extension->id())
1100 return *i; 1104 return *i;
1101 } 1105 }
1102 1106
1103 return NULL; 1107 return NULL;
1104 } 1108 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extensions_service.cc ('k') | chrome/common/extensions/api/extension_api.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698