| Index: chrome/browser/ui/app_list/search/search_controller_factory.cc
|
| diff --git a/chrome/browser/ui/app_list/search/search_controller_factory.cc b/chrome/browser/ui/app_list/search/search_controller_factory.cc
|
| index d1a5a2c4caab4d04b2a1d8ea4f4fc6163c0eba60..6bdfdd8bb57e4845fcbd45eeef42c55bf548abf1 100644
|
| --- a/chrome/browser/ui/app_list/search/search_controller_factory.cc
|
| +++ b/chrome/browser/ui/app_list/search/search_controller_factory.cc
|
| @@ -23,6 +23,13 @@ namespace app_list {
|
|
|
| namespace {
|
|
|
| +// Maximum number of results to show in each mixer group.
|
| +const size_t kMaxAppsGroupResults = 4;
|
| +const size_t kMaxOmniboxResults = 0; // Unlimited.
|
| +const size_t kMaxWebstoreResults = 2;
|
| +const size_t kMaxPeopleResults = 2;
|
| +const size_t kMaxSuggestionsResults = 6;
|
| +
|
| // Constants related to the SuggestionsService in AppList field trial.
|
| const char kSuggestionsProviderFieldTrialName[] = "SuggestionsAppListProvider";
|
| const char kSuggestionsProviderFieldTrialEnabledPrefix[] = "Enabled";
|
| @@ -45,22 +52,37 @@ scoped_ptr<SearchController> CreateSearchController(
|
| scoped_ptr<SearchController> controller(new SearchController(
|
| search_box, results, HistoryFactory::GetForBrowserContext(profile)));
|
|
|
| - controller->AddProvider(Mixer::MAIN_GROUP,
|
| + // Add mixer groups. There are four main groups: apps, people, webstore and
|
| + // omnibox. The apps, people and webstore groups each have a fixed maximum
|
| + // number of results. The omnibox group fills the remaining slots (with a
|
| + // minimum of one result).
|
| + size_t apps_group_id = controller->AddGroup(kMaxAppsGroupResults, 3.0);
|
| + size_t omnibox_group_id = controller->AddGroup(kMaxOmniboxResults, 2.0);
|
| + size_t webstore_group_id = controller->AddGroup(kMaxWebstoreResults, 1.0);
|
| + size_t people_group_id = controller->AddGroup(kMaxPeopleResults, 0.0);
|
| + // The omnibox group is treated specially by the Mixer and must have the
|
| + // correct ID.
|
| + DCHECK_EQ(omnibox_group_id, Mixer::OMNIBOX_GROUP);
|
| +
|
| + // Add search providers.
|
| + controller->AddProvider(apps_group_id,
|
| scoped_ptr<SearchProvider>(new AppSearchProvider(
|
| profile, list_controller,
|
| make_scoped_ptr(new base::DefaultClock()))));
|
| - controller->AddProvider(Mixer::OMNIBOX_GROUP,
|
| + controller->AddProvider(omnibox_group_id,
|
| scoped_ptr<SearchProvider>(
|
| new OmniboxProvider(profile, list_controller)));
|
| - controller->AddProvider(Mixer::WEBSTORE_GROUP,
|
| + controller->AddProvider(webstore_group_id,
|
| scoped_ptr<SearchProvider>(
|
| new WebstoreProvider(profile, list_controller)));
|
| controller->AddProvider(
|
| - Mixer::PEOPLE_GROUP,
|
| + people_group_id,
|
| scoped_ptr<SearchProvider>(new PeopleProvider(profile, list_controller)));
|
| if (IsSuggestionsSearchProviderEnabled()) {
|
| + size_t suggestions_group_id =
|
| + controller->AddGroup(kMaxSuggestionsResults, 3.0);
|
| controller->AddProvider(
|
| - Mixer::SUGGESTIONS_GROUP,
|
| + suggestions_group_id,
|
| scoped_ptr<SearchProvider>(
|
| new SuggestionsSearchProvider(profile, list_controller)));
|
| }
|
|
|