1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "ash/public/cpp/app_list/app_list_features.h"
6 
7 #include "ash/public/cpp/app_list/app_list_switches.h"
8 #include "base/feature_list.h"
9 #include "base/metrics/field_trial_params.h"
10 #include "chromeos/constants/chromeos_features.h"
11 
12 namespace app_list_features {
13 
14 const base::Feature kEnableAppDataSearch{"EnableAppDataSearch",
15                                          base::FEATURE_DISABLED_BY_DEFAULT};
16 const base::Feature kEnableSettingsShortcutSearch{
17     "EnableSettingsShortcutSearch", base::FEATURE_DISABLED_BY_DEFAULT};
18 const base::Feature kEnableAppListSearchAutocomplete{
19     "EnableAppListSearchAutocomplete", base::FEATURE_ENABLED_BY_DEFAULT};
20 const base::Feature kEnableAppRanker{"EnableAppRanker",
21                                      base::FEATURE_ENABLED_BY_DEFAULT};
22 const base::Feature kEnableZeroStateAppsRanker{
23     "EnableZeroStateAppsRanker", base::FEATURE_ENABLED_BY_DEFAULT};
24 const base::Feature kEnableQueryBasedMixedTypesRanker{
25     "EnableQueryBasedMixedTypesRanker", base::FEATURE_DISABLED_BY_DEFAULT};
26 const base::Feature kEnableZeroStateMixedTypesRanker{
27     "EnableZeroStateMixedTypesRanker", base::FEATURE_ENABLED_BY_DEFAULT};
28 const base::Feature kEnableAppReinstallZeroState{
29     "EnableAppReinstallZeroState", base::FEATURE_DISABLED_BY_DEFAULT};
30 const base::Feature kEnableSuggestedFiles{"EnableSuggestedFiles",
31                                           base::FEATURE_DISABLED_BY_DEFAULT};
32 
33 // "EnableEmbeddedAssistantUI" is used in finch experiment therefore we cannot
34 // change it until fully launched. It is used to redirect Launcher search to
35 // Assistant search.
36 const base::Feature kEnableAssistantSearch{"EnableEmbeddedAssistantUI",
37                                            base::FEATURE_ENABLED_BY_DEFAULT};
38 
39 const base::Feature kEnableAppGridGhost{"EnableAppGridGhost",
40                                         base::FEATURE_DISABLED_BY_DEFAULT};
41 const base::Feature kEnableAppListLaunchRecording{
42     "EnableAppListLaunchRecording", base::FEATURE_DISABLED_BY_DEFAULT};
43 const base::Feature kLauncherSettingsSearch{"LauncherSettingsSearch",
44                                             base::FEATURE_ENABLED_BY_DEFAULT};
45 const base::Feature kEnableFuzzyAppSearch{"EnableFuzzyAppSearch",
46                                           base::FEATURE_ENABLED_BY_DEFAULT};
47 const base::Feature kEnableExactMatchForNonLatinLocale{
48     "EnableExactMatchForNonLatinLocale", base::FEATURE_ENABLED_BY_DEFAULT};
49 const base::Feature kEnableAggregatedMlSearchRanking{
50     "EnableAggregatedMlSearchRanking", base::FEATURE_DISABLED_BY_DEFAULT};
51 const base::Feature kNewDragSpecInLauncher{"NewDragSpecInLauncher",
52                                            base::FEATURE_DISABLED_BY_DEFAULT};
53 const base::Feature kEnableOmniboxRichEntities{
54     "EnableOmniboxRichEntities", base::FEATURE_DISABLED_BY_DEFAULT};
55 
IsAppDataSearchEnabled()56 bool IsAppDataSearchEnabled() {
57   return base::FeatureList::IsEnabled(kEnableAppDataSearch);
58 }
59 
IsSettingsShortcutSearchEnabled()60 bool IsSettingsShortcutSearchEnabled() {
61   return base::FeatureList::IsEnabled(kEnableSettingsShortcutSearch);
62 }
63 
IsAppListSearchAutocompleteEnabled()64 bool IsAppListSearchAutocompleteEnabled() {
65   return base::FeatureList::IsEnabled(kEnableAppListSearchAutocomplete);
66 }
67 
IsAppRankerEnabled()68 bool IsAppRankerEnabled() {
69   return base::FeatureList::IsEnabled(kEnableAppRanker);
70 }
71 
IsZeroStateAppsRankerEnabled()72 bool IsZeroStateAppsRankerEnabled() {
73   return base::FeatureList::IsEnabled(kEnableZeroStateAppsRanker);
74 }
75 
IsQueryBasedMixedTypesRankerEnabled()76 bool IsQueryBasedMixedTypesRankerEnabled() {
77   return base::FeatureList::IsEnabled(kEnableQueryBasedMixedTypesRanker);
78 }
79 
IsZeroStateMixedTypesRankerEnabled()80 bool IsZeroStateMixedTypesRankerEnabled() {
81   return base::FeatureList::IsEnabled(kEnableZeroStateMixedTypesRanker);
82 }
83 
IsAppReinstallZeroStateEnabled()84 bool IsAppReinstallZeroStateEnabled() {
85   return base::FeatureList::IsEnabled(kEnableAppReinstallZeroState);
86 }
87 
IsSuggestedFilesEnabled()88 bool IsSuggestedFilesEnabled() {
89   return base::FeatureList::IsEnabled(kEnableSuggestedFiles);
90 }
91 
IsAssistantSearchEnabled()92 bool IsAssistantSearchEnabled() {
93   return base::FeatureList::IsEnabled(kEnableAssistantSearch);
94 }
95 
IsAppGridGhostEnabled()96 bool IsAppGridGhostEnabled() {
97   return base::FeatureList::IsEnabled(kEnableAppGridGhost);
98 }
99 
IsLauncherSettingsSearchEnabled()100 bool IsLauncherSettingsSearchEnabled() {
101   return base::FeatureList::IsEnabled(kLauncherSettingsSearch);
102 }
103 
IsFuzzyAppSearchEnabled()104 bool IsFuzzyAppSearchEnabled() {
105   return base::FeatureList::IsEnabled(kEnableFuzzyAppSearch);
106 }
107 
IsExactMatchForNonLatinLocaleEnabled()108 bool IsExactMatchForNonLatinLocaleEnabled() {
109   return base::FeatureList::IsEnabled(kEnableExactMatchForNonLatinLocale);
110 }
111 
IsAggregatedMlSearchRankingEnabled()112 bool IsAggregatedMlSearchRankingEnabled() {
113   return base::FeatureList::IsEnabled(kEnableAggregatedMlSearchRanking);
114 }
115 
IsNewDragSpecInLauncherEnabled()116 bool IsNewDragSpecInLauncherEnabled() {
117   return base::FeatureList::IsEnabled(kNewDragSpecInLauncher);
118 }
119 
IsOmniboxRichEntitiesEnabled()120 bool IsOmniboxRichEntitiesEnabled() {
121   return base::FeatureList::IsEnabled(kEnableOmniboxRichEntities);
122 }
123 
AppSearchResultRankerPredictorName()124 std::string AppSearchResultRankerPredictorName() {
125   const std::string predictor_name = base::GetFieldTrialParamValueByFeature(
126       kEnableZeroStateAppsRanker, "app_search_result_ranker_predictor_name");
127   if (!predictor_name.empty())
128     return predictor_name;
129   return std::string("MrfuAppLaunchPredictor");
130 }
131 
IsAppListLaunchRecordingEnabled()132 bool IsAppListLaunchRecordingEnabled() {
133   return base::FeatureList::IsEnabled(kEnableAppListLaunchRecording);
134 }
135 
136 }  // namespace app_list_features
137