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

Unified Diff: chrome/browser/ui/app_list/search/mixer.cc

Issue 15875007: app_list: Search result launch history and boost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix win7_aura unit_test Created 7 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/ui/app_list/search/mixer.h ('k') | chrome/browser/ui/app_list/search/mixer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/app_list/search/mixer.cc
diff --git a/chrome/browser/ui/app_list/search/mixer.cc b/chrome/browser/ui/app_list/search/mixer.cc
index b5294804631c47c8d5bf53c9593f018e6c9a62fa..3466d501119fd8a70a676fc67f66c989b762057c 100644
--- a/chrome/browser/ui/app_list/search/mixer.cc
+++ b/chrome/browser/ui/app_list/search/mixer.cc
@@ -106,7 +106,7 @@ class Mixer::Group {
providers_.push_back(provider);
}
- void FetchResults() {
+ void FetchResults(const KnownResults& known_results) {
results_.clear();
for (Providers::const_iterator provider_it = providers_.begin();
@@ -120,8 +120,31 @@ class Mixer::Group {
DCHECK_LE((*result_it)->relevance(), 1.0);
DCHECK(!(*result_it)->id().empty());
+ double boost = boost_;
+ KnownResults::const_iterator known_it =
+ known_results.find((*result_it)->id());
+ if (known_it != known_results.end()) {
+ switch (known_it->second) {
+ case PERFECT_PRIMARY:
+ boost = 4.0;
+ break;
+ case PREFIX_PRIMARY:
+ boost = 3.75;
+ break;
+ case PERFECT_SECONDARY:
+ boost = 3.25;
+ break;
+ case PREFIX_SECONDARY:
+ boost = 3.0;
+ break;
+ case UNKNOWN_RESULT:
+ NOTREACHED() << "Unknown result in KnownResults?";
+ break;
+ }
+ }
+
results_.push_back(
- SortData(*result_it, (*result_it)->relevance() + boost_));
+ SortData(*result_it, (*result_it)->relevance() + boost));
}
}
@@ -158,8 +181,8 @@ void Mixer::AddProviderToGroup(GroupId group, SearchProvider* provider) {
groups_[group_index]->AddProvider(provider);
}
-void Mixer::MixAndPublish() {
- FetchResults();
+void Mixer::MixAndPublish(const KnownResults& known_results) {
+ FetchResults(known_results);
SortedResults results;
results.reserve(kMaxResults);
@@ -197,11 +220,11 @@ void Mixer::MixAndPublish() {
Publish(results, ui_results_);
}
-void Mixer::FetchResults() {
+void Mixer::FetchResults(const KnownResults& known_results) {
for (Groups::iterator group_it = groups_.begin();
group_it != groups_.end();
++group_it) {
- (*group_it)->FetchResults();
+ (*group_it)->FetchResults(known_results);
}
}
« no previous file with comments | « chrome/browser/ui/app_list/search/mixer.h ('k') | chrome/browser/ui/app_list/search/mixer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698