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

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

Issue 291005: Allow the history URL provider to handle input of type QUERY. This helps in ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 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
Index: chrome/browser/autocomplete/search_provider.cc
===================================================================
--- chrome/browser/autocomplete/search_provider.cc (revision 29226)
+++ chrome/browser/autocomplete/search_provider.cc (working copy)
@@ -521,10 +521,11 @@
// TODO(kochi): http://b/1170574 We add only one results for navigational
// suggestions. If we can get more useful information about the score,
// consider adding more results.
- matches_.push_back(
- NavigationToMatch(navigation_results.front(),
- CalculateRelevanceForNavigation(0, is_keyword),
- is_keyword));
+ const size_t num_results = is_keyword ?
+ keyword_navigation_results_.size() : default_navigation_results_.size();
+ matches_.push_back(NavigationToMatch(navigation_results.front(),
+ CalculateRelevanceForNavigation(num_results, 0, is_keyword),
+ is_keyword));
}
}
@@ -547,7 +548,7 @@
MatchMap* map) {
for (size_t i = 0; i < suggest_results.size(); ++i) {
AddMatchToMap(suggest_results[i],
- CalculateRelevanceForSuggestion(suggest_results, i,
+ CalculateRelevanceForSuggestion(suggest_results.size(), i,
is_keyword),
AutocompleteMatch::SEARCH_SUGGEST,
static_cast<int>(i), is_keyword, map);
@@ -555,22 +556,21 @@
}
int SearchProvider::CalculateRelevanceForWhatYouTyped() const {
+ if (providers_.valid_keyword_provider())
+ return 250;
+
switch (input_.type()) {
case AutocompleteInput::UNKNOWN:
- return providers_.valid_keyword_provider() ? 250 : 1300;
+ case AutocompleteInput::QUERY:
+ case AutocompleteInput::FORCED_QUERY:
+ return 1300;
case AutocompleteInput::REQUESTED_URL:
- return providers_.valid_keyword_provider() ? 250 : 1200;
+ return 1150;
case AutocompleteInput::URL:
- return providers_.valid_keyword_provider() ? 250 : 850;
+ return 850;
- case AutocompleteInput::QUERY:
- return providers_.valid_keyword_provider() ? 250 : 1300;
-
- case AutocompleteInput::FORCED_QUERY:
- return providers_.valid_keyword_provider() ? 250 : 1500;
-
default:
NOTREACHED();
return 0;
@@ -589,73 +589,34 @@
// Don't let scores go below 0. Negative relevance scores are meaningful in
// a different way.
int base_score;
- bool is_primary = providers_.is_primary_provider(is_keyword);
- switch (input_.type()) {
- case AutocompleteInput::UNKNOWN:
- case AutocompleteInput::REQUESTED_URL:
- base_score = is_primary ? 1050 : 200;
- break;
-
- case AutocompleteInput::URL:
- base_score = is_primary ? 750 : 200;
- break;
-
- case AutocompleteInput::QUERY:
- case AutocompleteInput::FORCED_QUERY:
- base_score = is_primary ? 1250 : 200;
- break;
-
- default:
- NOTREACHED();
- base_score = 0;
- break;
- }
+ if (!providers_.is_primary_provider(is_keyword))
+ base_score = 200;
+ else
+ base_score = (input_.type() == AutocompleteInput::URL) ? 750 : 1050;
return std::max(0, base_score - score_discount);
}
-int SearchProvider::CalculateRelevanceForSuggestion(
- const SuggestResults& suggest_results,
- size_t suggestion_number,
- bool is_keyword) const {
- DCHECK(suggestion_number < suggest_results.size());
- bool is_primary = providers_.is_primary_provider(is_keyword);
- const int suggestion_value =
- static_cast<int>(suggest_results.size() - 1 - suggestion_number);
- switch (input_.type()) {
- case AutocompleteInput::UNKNOWN:
- case AutocompleteInput::REQUESTED_URL:
- return suggestion_value + (is_primary ? 600 : 100);
-
- case AutocompleteInput::URL:
- return suggestion_value + (is_primary ? 300 : 100);
-
- case AutocompleteInput::QUERY:
- case AutocompleteInput::FORCED_QUERY:
- return suggestion_value + (is_primary ? 800 : 100);
-
- default:
- NOTREACHED();
- return 0;
- }
+int SearchProvider::CalculateRelevanceForSuggestion(size_t num_results,
+ size_t result_number,
+ bool is_keyword) const {
+ DCHECK(result_number < num_results);
+ int base_score;
+ if (!providers_.is_primary_provider(is_keyword))
+ base_score = 100;
+ else
+ base_score = (input_.type() == AutocompleteInput::URL) ? 300 : 600;
+ return base_score +
+ static_cast<int>(num_results - 1 - result_number);
}
-int SearchProvider::CalculateRelevanceForNavigation(
- size_t suggestion_number,
- bool is_keyword) const {
- DCHECK(
- (is_keyword && suggestion_number < keyword_navigation_results_.size()) ||
- (!is_keyword && suggestion_number < default_navigation_results_.size()));
+int SearchProvider::CalculateRelevanceForNavigation(size_t num_results,
+ size_t result_number,
+ bool is_keyword) const {
+ DCHECK(result_number < num_results);
// TODO(kochi): http://b/784900 Use relevance score from the NavSuggest
// server if possible.
- bool is_primary = providers_.is_primary_provider(is_keyword);
- switch (input_.type()) {
- case AutocompleteInput::QUERY:
- case AutocompleteInput::FORCED_QUERY:
- return static_cast<int>(suggestion_number) + (is_primary ? 1000 : 150);
-
- default:
- return static_cast<int>(suggestion_number) + (is_primary ? 800 : 150);
- }
+ return (providers_.is_primary_provider(is_keyword) ? 800 : 150) +
+ static_cast<int>(num_results - 1 - result_number);
}
void SearchProvider::AddMatchToMap(const std::wstring& query_string,

Powered by Google App Engine
This is Rietveld 408576698