| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/ui/app_list/search/app_search_provider.h" | 5 #include "chrome/browser/ui/app_list/search/app_search_provider.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | |
| 9 #include <string> | 8 #include <string> |
| 9 #include <utility> |
| 10 | 10 |
| 11 #include "base/bind.h" | 11 #include "base/bind.h" |
| 12 #include "base/location.h" | 12 #include "base/location.h" |
| 13 #include "base/macros.h" | 13 #include "base/macros.h" |
| 14 #include "base/single_thread_task_runner.h" | 14 #include "base/single_thread_task_runner.h" |
| 15 #include "base/strings/utf_string_conversions.h" | 15 #include "base/strings/utf_string_conversions.h" |
| 16 #include "base/thread_task_runner_handle.h" | 16 #include "base/thread_task_runner_handle.h" |
| 17 #include "base/time/clock.h" | 17 #include "base/time/clock.h" |
| 18 #include "chrome/browser/extensions/extension_service.h" | 18 #include "chrome/browser/extensions/extension_service.h" |
| 19 #include "chrome/browser/extensions/extension_ui_util.h" | 19 #include "chrome/browser/extensions/extension_ui_util.h" |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 }; | 64 }; |
| 65 | 65 |
| 66 AppSearchProvider::AppSearchProvider(Profile* profile, | 66 AppSearchProvider::AppSearchProvider(Profile* profile, |
| 67 AppListControllerDelegate* list_controller, | 67 AppListControllerDelegate* list_controller, |
| 68 scoped_ptr<base::Clock> clock, | 68 scoped_ptr<base::Clock> clock, |
| 69 AppListItemList* top_level_item_list) | 69 AppListItemList* top_level_item_list) |
| 70 : profile_(profile), | 70 : profile_(profile), |
| 71 list_controller_(list_controller), | 71 list_controller_(list_controller), |
| 72 extension_registry_observer_(this), | 72 extension_registry_observer_(this), |
| 73 top_level_item_list_(top_level_item_list), | 73 top_level_item_list_(top_level_item_list), |
| 74 clock_(clock.Pass()), | 74 clock_(std::move(clock)), |
| 75 update_results_factory_(this) { | 75 update_results_factory_(this) { |
| 76 extension_registry_observer_.Add(ExtensionRegistry::Get(profile_)); | 76 extension_registry_observer_.Add(ExtensionRegistry::Get(profile_)); |
| 77 RefreshApps(); | 77 RefreshApps(); |
| 78 } | 78 } |
| 79 | 79 |
| 80 AppSearchProvider::~AppSearchProvider() {} | 80 AppSearchProvider::~AppSearchProvider() {} |
| 81 | 81 |
| 82 void AppSearchProvider::Start(bool /*is_voice_query*/, | 82 void AppSearchProvider::Start(bool /*is_voice_query*/, |
| 83 const base::string16& query) { | 83 const base::string16& query) { |
| 84 query_ = query; | 84 query_ = query; |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 size_t app_list_index = | 123 size_t app_list_index = |
| 124 it == id_to_app_list_index.end() ? apps_.size() : (*it).second; | 124 it == id_to_app_list_index.end() ? apps_.size() : (*it).second; |
| 125 if (app_list_index > apps_.size()) | 125 if (app_list_index > apps_.size()) |
| 126 app_list_index = apps_.size(); | 126 app_list_index = apps_.size(); |
| 127 | 127 |
| 128 result->set_relevance(kUnlaunchedAppRelevanceStepSize * | 128 result->set_relevance(kUnlaunchedAppRelevanceStepSize * |
| 129 (apps_.size() - app_list_index)); | 129 (apps_.size() - app_list_index)); |
| 130 } else { | 130 } else { |
| 131 result->UpdateFromLastLaunched(clock_->Now(), app->last_launch_time()); | 131 result->UpdateFromLastLaunched(clock_->Now(), app->last_launch_time()); |
| 132 } | 132 } |
| 133 Add(result.Pass()); | 133 Add(std::move(result)); |
| 134 } | 134 } |
| 135 } else { | 135 } else { |
| 136 for (const App* app : apps_) { | 136 for (const App* app : apps_) { |
| 137 scoped_ptr<AppResult> result( | 137 scoped_ptr<AppResult> result( |
| 138 new AppResult(profile_, app->app_id(), list_controller_, false)); | 138 new AppResult(profile_, app->app_id(), list_controller_, false)); |
| 139 TokenizedStringMatch match; | 139 TokenizedStringMatch match; |
| 140 if (!match.Calculate(query_terms, app->indexed_name())) | 140 if (!match.Calculate(query_terms, app->indexed_name())) |
| 141 continue; | 141 continue; |
| 142 | 142 |
| 143 result->UpdateFromMatch(app->indexed_name(), match); | 143 result->UpdateFromMatch(app->indexed_name(), match); |
| 144 Add(result.Pass()); | 144 Add(std::move(result)); |
| 145 } | 145 } |
| 146 } | 146 } |
| 147 | 147 |
| 148 update_results_factory_.InvalidateWeakPtrs(); | 148 update_results_factory_.InvalidateWeakPtrs(); |
| 149 } | 149 } |
| 150 | 150 |
| 151 void AppSearchProvider::AddApps(const extensions::ExtensionSet& extensions) { | 151 void AppSearchProvider::AddApps(const extensions::ExtensionSet& extensions) { |
| 152 extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_); | 152 extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_); |
| 153 for (extensions::ExtensionSet::const_iterator iter = extensions.begin(); | 153 for (extensions::ExtensionSet::const_iterator iter = extensions.begin(); |
| 154 iter != extensions.end(); ++iter) { | 154 iter != extensions.end(); ++iter) { |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 const extensions::Extension* extension, | 189 const extensions::Extension* extension, |
| 190 extensions::UninstallReason reason) { | 190 extensions::UninstallReason reason) { |
| 191 RefreshApps(); | 191 RefreshApps(); |
| 192 | 192 |
| 193 // This should not be batched as the UI needs to immediately be informed of | 193 // This should not be batched as the UI needs to immediately be informed of |
| 194 // deleted extensions to prevent use-after-frees. | 194 // deleted extensions to prevent use-after-frees. |
| 195 UpdateResults(); | 195 UpdateResults(); |
| 196 } | 196 } |
| 197 | 197 |
| 198 } // namespace app_list | 198 } // namespace app_list |
| OLD | NEW |