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

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

Issue 77453007: Omnibox: Make HistoryURL Highlight Titles like HistoryQuick Provider (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: highlight exact input title too Created 7 years, 1 month 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/history_url_provider.cc
diff --git a/chrome/browser/autocomplete/history_url_provider.cc b/chrome/browser/autocomplete/history_url_provider.cc
index d28038a4fa50e49f1dba9ae0a690574e8b3aa2bf..aef336d114c97b8460b0457e28a906facf2f7c55 100644
--- a/chrome/browser/autocomplete/history_url_provider.cc
+++ b/chrome/browser/autocomplete/history_url_provider.cc
@@ -21,6 +21,8 @@
#include "chrome/browser/history/history_service.h"
#include "chrome/browser/history/history_service_factory.h"
#include "chrome/browser/history/history_types.h"
+#include "chrome/browser/history/in_memory_url_index_types.h"
+#include "chrome/browser/history/scored_history_match.h"
#include "chrome/browser/omnibox/omnibox_field_trial.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search_engines/template_url_service.h"
@@ -771,10 +773,8 @@ bool HistoryURLProvider::FixupExactSuggestion(
match->deletable = true;
match->description = classifier.url_row().title();
RecordAdditionalInfoFromUrlRow(classifier.url_row(), match);
- AutocompleteMatch::ClassifyMatchInString(
- input.text(),
- classifier.url_row().title(),
- ACMatchClassification::NONE, &match->description_class);
+ match->description_class =
+ ClassifyDescription(input.text(), match->description);
if (!classifier.url_row().typed_count()) {
// If we reach here, we must be in the second pass, and we must not have
// this row's data available during the first pass. That means we
@@ -1087,10 +1087,28 @@ AutocompleteMatch HistoryURLProvider::HistoryMatchToACMatch(
&match.contents_class);
}
match.description = info.title();
- AutocompleteMatch::ClassifyMatchInString(params.input.text(),
- info.title(),
- ACMatchClassification::NONE,
- &match.description_class);
+ match.description_class =
+ ClassifyDescription(params.input.text(), match.description);
RecordAdditionalInfoFromUrlRow(info, &match);
return match;
}
+
+// static
+ACMatchClassifications HistoryURLProvider::ClassifyDescription(
+ const string16& input_text,
+ const string16& description) {
+ string16 clean_description = history::CleanUpTitleForMatching(description);
+ // Treat the input as a single term. This probably causes no highlighting
+ // if it's multiple terms such as mail.g. That seems reasonable.
Peter Kasting 2013/11/23 02:15:36 Wait, does this mean "mail.g" will no longer show
Mark P 2013/11/25 19:59:16 If the "title" of the page is "mail.google.com" (w
Peter Kasting 2013/11/26 02:15:36 That does limit the scope of the damage, but it st
Mark P 2013/11/26 20:08:15 While looking at the code to see how I can make it
+ history::TermMatches description_matches =
Peter Kasting 2013/11/23 02:15:36 Nit: Consider using () instead of = for non-basic
Mark P 2013/11/25 19:59:16 Okay.
+ history::MatchTermInString(input_text, clean_description, 0);
+ description_matches = SortAndDeoverlapMatches(description_matches);
Peter Kasting 2013/11/23 02:15:36 Nit: Combine with previous line
Mark P 2013/11/25 19:59:16 Done.
+ history::WordStarts description_word_starts;
+ history::String16VectorFromString16(
+ clean_description, false, &description_word_starts);
+ description_matches = history::ScoredHistoryMatch::
Peter Kasting 2013/11/23 02:15:36 Nit: If we break after '=' can we avoid breaking a
Mark P 2013/11/25 19:59:16 Yes. Done.
+ FilterTermMatchesByWordStarts(
+ description_matches, description_word_starts, 0);
+ return SpansFromTermMatch(
+ description_matches, clean_description.length(), false);
+}

Powered by Google App Engine
This is Rietveld 408576698