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

Side by Side Diff: chrome/browser/ui/app_list/search/app_result.cc

Issue 796793002: Make app list recommendations into their own DisplayType. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mathp_suggestions_search
Patch Set: fix_test Created 6 years 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 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_result.h" 5 #include "chrome/browser/ui/app_list/search/app_result.h"
6 6
7 #include "base/time/time.h" 7 #include "base/time/time.h"
8 #include "chrome/browser/extensions/extension_service.h" 8 #include "chrome/browser/extensions/extension_service.h"
9 #include "chrome/browser/extensions/extension_util.h" 9 #include "chrome/browser/extensions/extension_util.h"
10 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
(...skipping 14 matching lines...) Expand all
25 #include "ui/app_list/app_list_switches.h" 25 #include "ui/app_list/app_list_switches.h"
26 #include "ui/app_list/search/tokenized_string.h" 26 #include "ui/app_list/search/tokenized_string.h"
27 #include "ui/app_list/search/tokenized_string_match.h" 27 #include "ui/app_list/search/tokenized_string_match.h"
28 #include "ui/gfx/color_utils.h" 28 #include "ui/gfx/color_utils.h"
29 #include "ui/gfx/image/image_skia_operations.h" 29 #include "ui/gfx/image/image_skia_operations.h"
30 30
31 namespace app_list { 31 namespace app_list {
32 32
33 AppResult::AppResult(Profile* profile, 33 AppResult::AppResult(Profile* profile,
34 const std::string& app_id, 34 const std::string& app_id,
35 AppListControllerDelegate* controller) 35 AppListControllerDelegate* controller,
36 bool is_recommendation)
36 : profile_(profile), 37 : profile_(profile),
37 app_id_(app_id), 38 app_id_(app_id),
38 controller_(controller), 39 controller_(controller),
39 extension_registry_(NULL) { 40 extension_registry_(NULL) {
40 set_id(extensions::Extension::GetBaseURLFromExtensionId(app_id_).spec()); 41 set_id(extensions::Extension::GetBaseURLFromExtensionId(app_id_).spec());
41 if (app_list::switches::IsExperimentalAppListEnabled()) 42 if (app_list::switches::IsExperimentalAppListEnabled())
42 set_display_type(DISPLAY_TILE); 43 set_display_type(is_recommendation ? DISPLAY_RECOMMENDATION : DISPLAY_TILE);
43 44
44 const extensions::Extension* extension = 45 const extensions::Extension* extension =
45 extensions::ExtensionSystem::Get(profile_)->extension_service() 46 extensions::ExtensionSystem::Get(profile_)->extension_service()
46 ->GetInstalledExtension(app_id_); 47 ->GetInstalledExtension(app_id_);
47 DCHECK(extension); 48 DCHECK(extension);
48 49
49 is_platform_app_ = extension->is_platform_app(); 50 is_platform_app_ = extension->is_platform_app();
50 51
51 icon_.reset( 52 icon_.reset(
52 new extensions::IconImage(profile_, 53 new extensions::IconImage(profile_,
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 base::UserMetricsAction("AppList_ClickOnAppFromSearch")); 117 base::UserMetricsAction("AppList_ClickOnAppFromSearch"));
117 118
118 controller_->ActivateApp( 119 controller_->ActivateApp(
119 profile_, 120 profile_,
120 extension, 121 extension,
121 AppListControllerDelegate::LAUNCH_FROM_APP_LIST_SEARCH, 122 AppListControllerDelegate::LAUNCH_FROM_APP_LIST_SEARCH,
122 event_flags); 123 event_flags);
123 } 124 }
124 125
125 scoped_ptr<SearchResult> AppResult::Duplicate() { 126 scoped_ptr<SearchResult> AppResult::Duplicate() {
126 scoped_ptr<SearchResult> copy(new AppResult(profile_, app_id_, controller_)); 127 scoped_ptr<SearchResult> copy(
128 new AppResult(profile_, app_id_, controller_,
129 display_type() == DISPLAY_RECOMMENDATION));
127 copy->set_title(title()); 130 copy->set_title(title());
128 copy->set_title_tags(title_tags()); 131 copy->set_title_tags(title_tags());
129 132
130 return copy.Pass(); 133 return copy.Pass();
131 } 134 }
132 135
133 ui::MenuModel* AppResult::GetContextMenuModel() { 136 ui::MenuModel* AppResult::GetContextMenuModel() {
134 if (!context_menu_) { 137 if (!context_menu_) {
135 context_menu_.reset(new AppContextMenu( 138 context_menu_.reset(new AppContextMenu(
136 this, profile_, app_id_, controller_)); 139 this, profile_, app_id_, controller_));
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 const extensions::Extension* extension) { 209 const extensions::Extension* extension) {
207 UpdateIcon(); 210 UpdateIcon();
208 } 211 }
209 212
210 void AppResult::OnShutdown(extensions::ExtensionRegistry* registry) { 213 void AppResult::OnShutdown(extensions::ExtensionRegistry* registry) {
211 DCHECK_EQ(extension_registry_, registry); 214 DCHECK_EQ(extension_registry_, registry);
212 StopObservingExtensionRegistry(); 215 StopObservingExtensionRegistry();
213 } 216 }
214 217
215 } // namespace app_list 218 } // namespace app_list
OLDNEW
« no previous file with comments | « chrome/browser/ui/app_list/search/app_result.h ('k') | chrome/browser/ui/app_list/search/app_search_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698