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

Unified Diff: components/omnibox/search_suggestion_parser.cc

Issue 1134123004: Omnibox - Use Case Insensitive Matching when Bolding Query Suggestions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove extra include Created 5 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
« no previous file with comments | « chrome/browser/autocomplete/search_provider_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/omnibox/search_suggestion_parser.cc
diff --git a/components/omnibox/search_suggestion_parser.cc b/components/omnibox/search_suggestion_parser.cc
index 89eabe519d005fe28b28583421232af2dfc6024d..4909d3ac75ee4d5aa131f6e4169a3e9539f8032c 100644
--- a/components/omnibox/search_suggestion_parser.cc
+++ b/components/omnibox/search_suggestion_parser.cc
@@ -4,6 +4,8 @@
#include "components/omnibox/search_suggestion_parser.h"
+#include <algorithm>
+
#include "base/i18n/icu_string_conversions.h"
#include "base/json/json_string_value_serializer.h"
#include "base/json/json_writer.h"
@@ -152,8 +154,11 @@ void SearchSuggestionParser::SuggestResult::ClassifyMatchContents(
lookup_text = input_text.substr(contents_index);
}
}
- size_t lookup_position = match_contents_.find(lookup_text);
- if (!allow_bolding_all && (lookup_position == base::string16::npos)) {
+ // Do a case-insensitive search for |lookup_text|.
+ base::string16::const_iterator lookup_position = std::search(
+ match_contents_.begin(), match_contents_.end(), lookup_text.begin(),
+ lookup_text.end(), base::CaseInsensitiveCompare<wchar_t>());
Peter Kasting 2015/05/11 23:40:37 wchar_t seems wrong, shouldn't it be char16?
Mark P 2015/05/11 23:45:56 Already fixed; the new patchset was being uploaded
+ if (!allow_bolding_all && (lookup_position == match_contents_.end())) {
// Bail if the code below to update the bolding would bold the whole
// string. Note that the string may already be entirely bolded; if
// so, leave it as is.
@@ -164,7 +169,7 @@ void SearchSuggestionParser::SuggestResult::ClassifyMatchContents(
// will be highlighted, e.g. for input_text = "you" the suggestion may be
// "youtube", so we'll bold the "tube" section: you*tube*.
if (input_text != match_contents_) {
- if (lookup_position == base::string16::npos) {
+ if (lookup_position == match_contents_.end()) {
// The input text is not a substring of the query string, e.g. input
// text is "slasdot" and the query string is "slashdot", so we bold the
// whole thing.
@@ -176,13 +181,14 @@ void SearchSuggestionParser::SuggestResult::ClassifyMatchContents(
// short as a single character highlighted in a query suggestion result,
// e.g. for input text "s" and query string "southwest airlines", it
// looks odd if both the first and last s are highlighted.
- if (lookup_position != 0) {
+ const size_t lookup_index = lookup_position - match_contents_.begin();
+ if (lookup_index != 0) {
match_contents_class_.push_back(
ACMatchClassification(0, ACMatchClassification::MATCH));
}
match_contents_class_.push_back(
- ACMatchClassification(lookup_position, ACMatchClassification::NONE));
- size_t next_fragment_position = lookup_position + lookup_text.length();
+ ACMatchClassification(lookup_index, ACMatchClassification::NONE));
+ size_t next_fragment_position = lookup_index + lookup_text.length();
if (next_fragment_position < match_contents_.length()) {
match_contents_class_.push_back(ACMatchClassification(
next_fragment_position, ACMatchClassification::MATCH));
« no previous file with comments | « chrome/browser/autocomplete/search_provider_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698