Chromium Code Reviews| Index: chrome/browser/autocomplete/bookmark_provider.cc |
| diff --git a/chrome/browser/autocomplete/bookmark_provider.cc b/chrome/browser/autocomplete/bookmark_provider.cc |
| index 2e7ed4862a1e59a8190f879f4a0d183f8037e6f5..29ccb2a8370bd930ffebb59685e62e819fbdff90 100644 |
| --- a/chrome/browser/autocomplete/bookmark_provider.cc |
| +++ b/chrome/browser/autocomplete/bookmark_provider.cc |
| @@ -9,6 +9,7 @@ |
| #include <vector> |
| #include "base/prefs/pref_service.h" |
| +#include "base/strings/string_util.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.h" |
| #include "chrome/browser/autocomplete/history_provider.h" |
| @@ -27,6 +28,30 @@ using bookmarks::BookmarkMatch; |
| typedef std::vector<BookmarkMatch> BookmarkMatches; |
| +namespace { |
| + |
| +// Remove leading spaces from |title| before displaying, otherwise it looks |
|
Peter Kasting
2014/08/25 19:46:44
Nit: Remove -> Removes; correct -> corrects
Mark P
2014/08/25 19:51:16
Both done.
|
| +// funny. In the process, correct |title_match_positions| so the correct |
| +// characters are highlighted. |
| +void CorrectTitleAndMatchPositions( |
| + base::string16* title, |
| + BookmarkMatch::MatchPositions* title_match_positions) { |
| + base::string16 trimmed_title; |
|
Peter Kasting
2014/08/25 19:46:44
Nit: Saves the assignment later:
size_t correct
Mark P
2014/08/25 19:51:16
Too much less readable, not worth it to save one s
|
| + base::TrimWhitespace(*title, base::TRIM_LEADING, &trimmed_title); |
| + const size_t correction = title->length() - trimmed_title.length(); |
| + if (correction == 0) |
| + return; |
| + (*title) = trimmed_title; |
| + for (query_parser::Snippet::MatchPositions::iterator it = |
| + title_match_positions->begin(); |
| + it != title_match_positions->end(); ++it) { |
| + (*it) = query_parser::Snippet::MatchPosition( |
| + it->first - correction, it->second - correction); |
| + } |
| +} |
| + |
| +} // namespace |
| + |
| // BookmarkProvider ------------------------------------------------------------ |
| BookmarkProvider::BookmarkProvider(Profile* profile) |
| @@ -147,6 +172,9 @@ AutocompleteMatch BookmarkProvider::BookmarkMatchToACMatch( |
| AutocompleteMatch match(this, 0, false, |
| AutocompleteMatchType::BOOKMARK_TITLE); |
| base::string16 title(bookmark_match.node->GetTitle()); |
| + BookmarkMatch::MatchPositions new_title_match_positions = |
| + bookmark_match.title_match_positions; |
| + CorrectTitleAndMatchPositions(&title, &new_title_match_positions); |
| const GURL& url(bookmark_match.node->url()); |
| const base::string16& url_utf16 = base::UTF8ToUTF16(url.spec()); |
| size_t inline_autocomplete_offset = URLPrefix::GetInlineAutocompleteOffset( |