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

Side by Side Diff: chrome/browser/chromeos/launcher_search_provider/service.cc

Issue 1060733003: Support custom icon in search result. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rename icon_image to image. 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/launcher_search_provider/service.h" 5 #include "chrome/browser/chromeos/launcher_search_provider/service.h"
6 6
7 #include "base/memory/scoped_vector.h" 7 #include "base/memory/scoped_vector.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/chromeos/launcher_search_provider/service_factory.h" 9 #include "chrome/browser/chromeos/launcher_search_provider/service_factory.h"
10 #include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_prov ider.h" 10 #include "chrome/browser/ui/app_list/search/launcher_search/launcher_search_prov ider.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 extensions::EventRouter::Get(profile_); 92 extensions::EventRouter::Get(profile_);
93 event_router->DispatchEventToExtension( 93 event_router->DispatchEventToExtension(
94 extension_id, 94 extension_id,
95 make_scoped_ptr(new extensions::Event( 95 make_scoped_ptr(new extensions::Event(
96 api_launcher_search_provider::OnOpenResult::kEventName, 96 api_launcher_search_provider::OnOpenResult::kEventName,
97 api_launcher_search_provider::OnOpenResult::Create(item_id)))); 97 api_launcher_search_provider::OnOpenResult::Create(item_id))));
98 } 98 }
99 99
100 void Service::SetSearchResults( 100 void Service::SetSearchResults(
101 const extensions::Extension* extension, 101 const extensions::Extension* extension,
102 const ErrorReporter& error_reporter,
102 const std::string& query_id, 103 const std::string& query_id,
103 const std::vector<linked_ptr< 104 const std::vector<linked_ptr<
104 extensions::api::launcher_search_provider::SearchResult>>& results) { 105 extensions::api::launcher_search_provider::SearchResult>>& results) {
105 // If query is not running or query_id is different from current query id, 106 // If query is not running or query_id is different from current query id,
106 // discard the results. 107 // discard the results.
107 if (!is_query_running_ || query_id != std::to_string(query_id_)) 108 if (!is_query_running_ || query_id != std::to_string(query_id_))
108 return; 109 return;
109 110
110 // If |extension| is not in the listener extensions list, ignore it. 111 // If |extension| is not in the listener extensions list, ignore it.
111 if (!ContainsValue(GetListenerExtensionIds(), extension->id())) 112 if (!ContainsValue(GetListenerExtensionIds(), extension->id()))
112 return; 113 return;
113 114
114 // Set search results to provider. 115 // Set search results to provider.
115 DCHECK(provider_); 116 DCHECK(provider_);
116 ScopedVector<app_list::LauncherSearchResult> search_results; 117 ScopedVector<app_list::LauncherSearchResult> search_results;
117 for (const auto& result : results) { 118 for (const auto& result : results) {
118 const int relevance = 119 const int relevance =
119 std::min(kMaxSearchResultScore, std::max(result->relevance, 0)); 120 std::min(kMaxSearchResultScore, std::max(result->relevance, 0));
120 const GURL icon_url = 121 const GURL icon_url =
121 result->icon_url ? GURL(*result->icon_url.get()) : GURL(); 122 result->icon_url ? GURL(*result->icon_url.get()) : GURL();
122 123
123 app_list::LauncherSearchResult* search_result = 124 app_list::LauncherSearchResult* search_result =
124 new app_list::LauncherSearchResult(result->item_id, icon_url, relevance, 125 new app_list::LauncherSearchResult(result->item_id, icon_url, relevance,
125 profile_, extension); 126 profile_, extension, error_reporter);
126 search_result->set_title(base::UTF8ToUTF16(result->title)); 127 search_result->set_title(base::UTF8ToUTF16(result->title));
127 search_results.push_back(search_result); 128 search_results.push_back(search_result);
128 } 129 }
129 provider_->SetSearchResults(extension->id(), search_results.Pass()); 130 provider_->SetSearchResults(extension->id(), search_results.Pass());
130 } 131 }
131 132
132 bool Service::IsQueryRunning() const { 133 bool Service::IsQueryRunning() const {
133 return is_query_running_; 134 return is_query_running_;
134 } 135 }
135 136
136 std::set<ExtensionId> Service::GetListenerExtensionIds() { 137 std::set<ExtensionId> Service::GetListenerExtensionIds() {
138 // TODO(yawano): Cache this result for optimization (crbug.com/440649).
137 std::set<ExtensionId> extension_ids; 139 std::set<ExtensionId> extension_ids;
138 140
139 const ExtensionSet& extension_set = extension_registry_->enabled_extensions(); 141 const ExtensionSet& extension_set = extension_registry_->enabled_extensions();
140 for (scoped_refptr<const extensions::Extension> extension : extension_set) { 142 for (scoped_refptr<const extensions::Extension> extension : extension_set) {
141 const extensions::PermissionsData* permission_data = 143 const extensions::PermissionsData* permission_data =
142 extension->permissions_data(); 144 extension->permissions_data();
143 const bool has_permission = permission_data->HasAPIPermission( 145 const bool has_permission = permission_data->HasAPIPermission(
144 extensions::APIPermission::kLauncherSearchProvider); 146 extensions::APIPermission::kLauncherSearchProvider);
145 if (has_permission) 147 if (has_permission)
146 extension_ids.insert(extension->id()); 148 extension_ids.insert(extension->id());
147 } 149 }
148 150
149 return extension_ids; 151 return extension_ids;
150 } 152 }
151 153
152 } // namespace launcher_search_provider 154 } // namespace launcher_search_provider
153 } // namespace chromeos 155 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698