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

Unified Diff: chrome/browser/ui/app_list/search/launcher_search/launcher_search_provider.cc

Issue 1071093002: Implement setSearchResults. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clear results after query is ended. Created 5 years, 8 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/ui/app_list/search/launcher_search/launcher_search_provider.cc
diff --git a/chrome/browser/ui/app_list/search/launcher_search/launcher_search_provider.cc b/chrome/browser/ui/app_list/search/launcher_search/launcher_search_provider.cc
index 103c4b76bd8b8a0037618f4286aa1f37793c1449..34b326e6d1bfb6d258f0b3871acd4f93e75fa72b 100644
--- a/chrome/browser/ui/app_list/search/launcher_search/launcher_search_provider.cc
+++ b/chrome/browser/ui/app_list/search/launcher_search/launcher_search_provider.cc
@@ -36,6 +36,9 @@ void LauncherSearchProvider::Stop() {
// order not to start query after Stop() is called.
query_timer_.Stop();
+ // Clear all search results of the previous query.
+ extension_results_.clear();
+
Service* service = Service::Get(profile_);
// Since we delay queries and filter out empty string queries, it can happen
@@ -44,6 +47,28 @@ void LauncherSearchProvider::Stop() {
service->OnQueryEnded();
}
+void LauncherSearchProvider::SetSearchResults(
+ const extensions::ExtensionId& extension_id,
+ std::vector<linked_ptr<LauncherSearchResult>> extension_results) {
+ DCHECK(Service::Get(profile_)->IsQueryRunning());
+
+ // If it already has the results of this extension, delete it first.
+ if (ContainsKey(extension_results_, extension_id))
+ extension_results_.erase(extension_id);
+
+ // Adds this extension's results.
+ extension_results_.insert(std::make_pair(extension_id, extension_results));
+
+ // Updates results with other extension results.
+ ClearResults();
+ for (const auto& it : extension_results_) {
+ std::vector<linked_ptr<LauncherSearchResult>> results = it.second;
Matt Giuca 2015/04/10 13:29:13 const std::vector<...>& Or else it will copy the
yawano 2015/04/13 07:30:52 Done. Changed to use pointer here.
+ for (const auto& result : results) {
Matt Giuca 2015/04/10 13:29:13 nit: Don't need curly braces.
yawano 2015/04/13 07:30:52 Done.
+ Add(result->Duplicate());
+ }
+ }
+}
+
void LauncherSearchProvider::DelayQuery(const base::Closure& closure) {
base::TimeDelta delay =
base::TimeDelta::FromMilliseconds(kLauncherSearchProviderQueryDelayInMs);
@@ -58,7 +83,7 @@ void LauncherSearchProvider::DelayQuery(const base::Closure& closure) {
void LauncherSearchProvider::StartInternal(const base::string16& query) {
if (!query.empty()) {
- Service::Get(profile_)->OnQueryStarted(base::UTF16ToUTF8(query),
+ Service::Get(profile_)->OnQueryStarted(this, base::UTF16ToUTF8(query),
kLauncherSearchProviderMaxResults);
}
}

Powered by Google App Engine
This is Rietveld 408576698