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

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

Issue 695693002: Omnibox: Demote Bookmarklets without Title Matches (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/autocomplete/bookmark_provider.cc
diff --git a/chrome/browser/autocomplete/bookmark_provider.cc b/chrome/browser/autocomplete/bookmark_provider.cc
index dd734cec20b1d693dbe60feb0243a3ec147fba14..b465cba359e42e4ef082885862dc0dbe8884239f 100644
--- a/chrome/browser/autocomplete/bookmark_provider.cc
+++ b/chrome/browser/autocomplete/bookmark_provider.cc
@@ -22,6 +22,7 @@
#include "components/omnibox/autocomplete_result.h"
#include "components/omnibox/url_prefix.h"
#include "net/base/net_util.h"
+#include "url/url_constants.h"
using bookmarks::BookmarkMatch;
@@ -261,10 +262,9 @@ AutocompleteMatch BookmarkProvider::BookmarkMatchToACMatch(
// between these high-quality bookmarks.
//
// The normalized value is multiplied against the scoring range available,
- // which is 299. The 299 is calculated by subtracting the minimum possible
- // score, 900, from the maximum possible score, 1199. This product, ranging
- // from 0 to 299, is added to the minimum possible score, 900, giving the
- // preliminary score.
+ // which is the difference between the minimum possible score and the maximum
+ // possible score. This product is added to the minimum possible score to
+ // give the preliminary score.
//
// If the preliminary score is less than the maximum possible score, 1199,
// it can be boosted up to that maximum possible score if the URL referenced
@@ -286,12 +286,19 @@ AutocompleteMatch BookmarkProvider::BookmarkMatchToACMatch(
for_each(bookmark_match.url_match_positions.begin(),
bookmark_match.url_match_positions.end(),
ScoringFunctor(bookmark_match.node->url().spec().length()));
- const double summed_factors = title_position_functor.ScoringFactor() +
+ const double title_match_strength = title_position_functor.ScoringFactor();
+ const double summed_factors = title_match_strength +
url_position_functor.ScoringFactor();
const double normalized_sum =
std::min(summed_factors / (title.size() + 10), 1.0);
- const int kBaseBookmarkScore = 900;
- const int kMaxBookmarkScore = 1199;
+ // Bookmarks with javascript scheme ("bookmarklets") that do not have title
+ // matches get a lower base and lower maximum score because returning them
+ // for matches in their (often very long) URL looks stupid and is often not
+ // intended by the user.
+ const bool bookmarklet_without_title_match =
+ url.SchemeIs(url::kJavaScriptScheme) && (title_match_strength == 0.0);
+ const int kBaseBookmarkScore = bookmarklet_without_title_match ? 400 : 900;
+ const int kMaxBookmarkScore = bookmarklet_without_title_match ? 799 : 1199;
const double kBookmarkScoreRange =
static_cast<double>(kMaxBookmarkScore - kBaseBookmarkScore);
match.relevance = static_cast<int>(normalized_sum * kBookmarkScoreRange) +
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698