chromium/chrome/browser/ash/app_list/search/search_features.cc

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/ash/app_list/search/search_features.h"

#include "ash/constants/ash_features.h"
#include "base/feature_list.h"
#include "chromeos/components/libsegmentation/buildflags.h"
#include "chromeos/constants/chromeos_features.h"

namespace search_features {

BASE_FEATURE(kLauncherGameSearch,
             "LauncherGameSearch",
             base::FEATURE_DISABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherKeywordExtractionScoring,
             "LauncherKeywordExtractionScoring",
             base::FEATURE_DISABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherQueryFederatedAnalyticsPHH,
             "LauncherQueryFederatedAnalyticsPHH",
             base::FEATURE_ENABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherFuzzyMatchAcrossProviders,
             "LauncherFuzzyMatchAcrossProviders",
             base::FEATURE_DISABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherFuzzyMatchForOmnibox,
             "LauncherFuzzyMatchForOmnibox",
             base::FEATURE_ENABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherImageSearch,
             "LauncherImageSearch",
             base::FEATURE_DISABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherLocalImageSearchConfidence,
             "LauncherLocalImageSearchConfidence",
             base::FEATURE_DISABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherLocalImageSearchRelevance,
             "LauncherLocalImageSearchRelevance",
             base::FEATURE_DISABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherImageSearchIca,
             "LauncherImageSearchIca",
             base::FEATURE_DISABLED_BY_DEFAULT);

BASE_FEATURE(kICASupportedByHardware,
             "ICASupportedByHardware",
             base::FEATURE_DISABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherImageSearchOcr,
             "LauncherImageSearchOcr",
             base::FEATURE_DISABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherImageSearchIndexingLimit,
             "LauncherImageSearchIndexingLimit",
             base::FEATURE_DISABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherSystemInfoAnswerCards,
             "LauncherSystemInfoAnswerCards",
             base::FEATURE_ENABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherSearchFileScan,
             "kLauncherSearchFileScan",
             base::FEATURE_ENABLED_BY_DEFAULT);

BASE_FEATURE(kLauncherKeyShortcutInBestMatch,
             "LauncherKeyShortcutInBestMatch",
             base::FEATURE_DISABLED_BY_DEFAULT);

// TODO(b/330386392): kLauncherGameSearch can be removed because if there's no
// payload, there will be no result.
bool IsLauncherGameSearchEnabled() {
  return base::FeatureList::IsEnabled(kLauncherGameSearch) ||
         chromeos::features::IsCloudGamingDeviceEnabled() ||
         chromeos::features::IsAlmanacLauncherPayloadEnabled();
}

bool IsLauncherKeywordExtractionScoringEnabled() {
  return base::FeatureList::IsEnabled(kLauncherKeywordExtractionScoring);
}

bool IsLauncherQueryFederatedAnalyticsPHHEnabled() {
  return base::FeatureList::IsEnabled(kLauncherQueryFederatedAnalyticsPHH);
}

bool IsLauncherFuzzyMatchAcrossProvidersEnabled() {
  return base::FeatureList::IsEnabled(kLauncherFuzzyMatchAcrossProviders);
}

bool IsLauncherFuzzyMatchForOmniboxEnabled() {
  return base::FeatureList::IsEnabled(kLauncherFuzzyMatchForOmnibox);
}

bool IsLauncherImageSearchEnabled() {
  return (base::FeatureList::IsEnabled(
              ash::features::kFeatureManagementLocalImageSearch) ||
          base::FeatureList::IsEnabled(
              ash::features::kLocalImageSearchOnCore)) &&
         base::FeatureList::IsEnabled(kLauncherImageSearch);
}

// Only enable ica image search for ICA supported devices.
bool IsLauncherImageSearchIcaEnabled() {
  return base::FeatureList::IsEnabled(kLauncherImageSearchIca) &&
         base::FeatureList::IsEnabled(kICASupportedByHardware);
}

bool IsLauncherImageSearchOcrEnabled() {
  return base::FeatureList::IsEnabled(kLauncherImageSearchOcr);
}

bool IsLauncherImageSearchIndexingLimitEnabled() {
  return base::FeatureList::IsEnabled(kLauncherImageSearchIndexingLimit);
}

bool IsLauncherSystemInfoAnswerCardsEnabled() {
  return base::FeatureList::IsEnabled(kLauncherSystemInfoAnswerCards);
}

bool IsLauncherSearchFileScanEnabled() {
  return base::FeatureList::IsEnabled(kLauncherSearchFileScan);
}

bool IskLauncherKeyShortcutInBestMatchEnabled() {
  return base::FeatureList::IsEnabled(kLauncherKeyShortcutInBestMatch);
}

}  // namespace search_features