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

Unified Diff: chrome/browser/autocomplete/extension_app_provider.cc

Issue 7031058: Make the app provider match highlighting use the existing ClassifyMatchXXX() machinery, and set t... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/autocomplete/extension_app_provider.cc
===================================================================
--- chrome/browser/autocomplete/extension_app_provider.cc (revision 86341)
+++ chrome/browser/autocomplete/extension_app_provider.cc (working copy)
@@ -24,8 +24,8 @@
}
void ExtensionAppProvider::AddExtensionAppForTesting(
- const std::string& app_name,
- const std::string url) {
+ const string16& app_name,
Finnur 2011/05/25 22:26:05 Nit: This no longer needs to be on a separate line
+ const string16& url) {
extension_apps_.push_back(std::make_pair(app_name, url));
}
@@ -37,46 +37,43 @@
return;
if (!input.text().empty()) {
- std::string input_utf8 = UTF16ToUTF8(input.text());
for (ExtensionApps::const_iterator app = extension_apps_.begin();
app != extension_apps_.end(); ++app) {
// See if the input matches this extension application.
- const std::string& name = app->first;
- const std::string& url = app->second;
- std::string::const_iterator name_iter =
- std::search(name.begin(),
- name.end(),
- input_utf8.begin(),
- input_utf8.end(),
- base::CaseInsensitiveCompare<char>());
- std::string::const_iterator url_iter =
- std::search(url.begin(),
- url.end(),
- input_utf8.begin(),
- input_utf8.end(),
- base::CaseInsensitiveCompare<char>());
-
+ const string16& name = app->first;
+ string16::const_iterator name_iter = std::search(name.begin(), name.end(),
+ input.text().begin(), input.text().end(),
+ base::CaseInsensitiveCompare<char16>());
bool matches_name = name_iter != name.end();
+ const string16& url = app->second;
+ string16::const_iterator url_iter = std::search(url.begin(), url.end(),
+ input.text().begin(), input.text().end(),
+ base::CaseInsensitiveCompare<char16>());
bool matches_url = url_iter != url.end() &&
input.type() != AutocompleteInput::FORCED_QUERY;
+
if (matches_name || matches_url) {
// We have a match, might be a partial match.
// TODO(finnur): Figure out what type to return here, might want to have
// the extension icon/a generic icon show up in the Omnibox.
AutocompleteMatch match(this, 0, false,
AutocompleteMatch::EXTENSION_APP);
- match.fill_into_edit = UTF8ToUTF16(url);
+ match.fill_into_edit = url;
match.destination_url = GURL(url);
match.inline_autocomplete_offset = string16::npos;
- match.contents = UTF8ToUTF16(name);
- HighlightMatch(input, &match.contents_class, name_iter, name);
- match.description = UTF8ToUTF16(url);
- HighlightMatch(input, &match.description_class, url_iter, url);
+ match.contents = name;
+ AutocompleteMatch::ClassifyLocationInString(
+ matches_name ? (name_iter - name.begin()) : string16::npos,
+ input.text().length(), name.length(), ACMatchClassification::NONE,
+ &match.contents_class);
+ match.description = url;
+ AutocompleteMatch::ClassifyLocationInString(
+ matches_url ? (url_iter - url.begin()) : string16::npos,
+ input.text().length(), url.length(), ACMatchClassification::URL,
+ &match.description_class);
match.relevance = CalculateRelevance(input.type(),
- input.text().length(),
- matches_name ?
- name.length() : url.length(),
- GURL(url));
+ input.text().length(), matches_name ? name.length() : url.length(),
+ match.destination_url);
matches_.push_back(match);
}
}
@@ -100,8 +97,8 @@
continue;
extension_apps_.push_back(
- std::make_pair((*app)->name(),
- (*app)->GetFullLaunchURL().spec()));
+ std::make_pair(UTF8ToUTF16((*app)->name()),
+ UTF8ToUTF16((*app)->GetFullLaunchURL().spec())));
}
}
}
@@ -119,26 +116,6 @@
RefreshAppList();
}
-void ExtensionAppProvider::HighlightMatch(const AutocompleteInput& input,
- ACMatchClassifications* match_class,
- std::string::const_iterator iter,
- const std::string& match_string) {
- size_t pos = iter - match_string.begin();
- bool match_found = iter != match_string.end();
- if (!match_found || pos > 0) {
- match_class->push_back(
- ACMatchClassification(0, ACMatchClassification::DIM));
- }
- if (match_found) {
- match_class->push_back(
- ACMatchClassification(pos, ACMatchClassification::MATCH));
- if (pos + input.text().length() < match_string.length()) {
- match_class->push_back(ACMatchClassification(pos + input.text().length(),
- ACMatchClassification::DIM));
- }
- }
-}
-
int ExtensionAppProvider::CalculateRelevance(AutocompleteInput::Type type,
int input_length,
int target_length,
« no previous file with comments | « chrome/browser/autocomplete/extension_app_provider.h ('k') | chrome/browser/autocomplete/extension_app_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698